Applescript & Javascript để lấy số từ chrome và tổng cộng


3

Tôi đang cố gắng lấy tổng số từ một trang web nội bộ và nhận tổng số.

để có được một kết quả duy nhất tôi đã viết điều này:

tell application "Google Chrome"
    tell tab 1 of window 1 to set orderTotal to execute javascript "document.getElementsByClassName('total')[0].innerHTML;"
end tell 

đầu ra trong ví dụ này là:

"<td>1,200.00</td><td>JPY</td>"

(PS tiền tệ không phải lúc nào cũng giống nhau)

để nhận được mọi giá trị công việc này

tell application "Google Chrome"
    tell tab 1 of window 1 to set r to execute javascript "var outPut=[]; var arr=document.getElementsByClassName('total');for (var i in arr) {outPut.push(arr[i].innerHTML)};outPut;"
end tell
 return r

mà cho tôi một cái gì đó như thế này:

"<td>4,000.00</td><td>JPY</td>", "<td>5,000.00</td><td>JPY</td>", "<td>5,000.00</td><td>JPY</td>", "<td>5,000.00</td><td>JPY</td>", "<td>5,000.00</td><td>JPY</td>", "<td>5,000.00</td><td>JPY</td>", "<td>3,800.00</td><td>JPY</td>", "<td>5,000.00</td><td>JPY</td>", "<td>5,000.00</td><td>JPY</td>", missing value, missing value, missing 

Tôi muốn xóa văn bản và làm tổng cộng,

Đã thử điều này để xóa các giá trị, nhưng rõ ràng là không hoạt động:

set theText to Unicode text
property leftEdge1 : "<td>"
property rightEdge1 : "</td>"
try
    set saveTID to text item delimiters
    set text item delimiters to leftEdge1
    set classValue to text item 2 of r
    set text item delimiters to rightEdge1
    set singleValue to text item 1 of classValue
    set text item delimiters to saveTID
    singleValue
end try

và đối với tổng số tôi không chắc chắn làm thế nào để tiến hành.


1. URL của trang web là gì? 2. Dòng theo sau "cung cấp cho tôi một cái gì đó như thế này:" dường như thiếu từ "giá trị" vì nó kết thúc bằng "thiếu" thay vì "thiếu giá trị", vậy đó là gì? 3. Vì rcó chứa nội dung của arraynó nên có thể được coi là một listvà bạn cần lặp lại nó bằng một repeat câu lệnh .
dùng3439894

Câu trả lời:


2

Trong trường hợp không có URL thực tế và đầu ra dường như không hoàn chỉnh sẽ hiển thị trong OP, ví dụ sau đây, AppleScript được định nghĩa là a và tính tổng các giá trị số của nó.rlist

set r to {"<td>4,000.00</td><td>JPY</td>", "<td>5,000.00</td><td>JPY</td>", "<td>5,000.00</td><td>JPY</td>", "<td>5,000.00</td><td>JPY</td>", "<td>5,000.00</td><td>JPY</td>", "<td>5,000.00</td><td>JPY</td>", "<td>3,800.00</td><td>JPY</td>", "<td>5,000.00</td><td>JPY</td>", "<td>5,000.00</td><td>JPY</td>", missing value, missing value, missing value}

set theText to Unicode text
property leftEdge1 : "<td>"
property rightEdge1 : "</td>"
set totalValue to 0

repeat with i from 1 to count r
    try
        set saveTID to text item delimiters
        set text item delimiters to leftEdge1
        set classValue to text item 2 of item i of r
        set text item delimiters to rightEdge1
        set singleValue to text item 1 of classValue
        set text item delimiters to saveTID
        set totalValue to totalValue + singleValue
    end try
end repeat

log totalValue

-- Result:
-- 42800

Lưu ý: Các ví dụ AppleScript đang chỉ là điều đó và không sử dụng bất kỳ khác xử lý lỗi sau đó những gì đang hiển thị và có nghĩa là chỉ hiển thị một trong nhiều cách để thực hiện một nhiệm vụ. Trách nhiệm luôn được Người dùng thêm / sử dụng xử lý lỗi thích hợp khi cần / muốn.


@Low rủi ro, Trong khi ví dụ AppleScript đang làm việc để trả về một số nguyên , hãy ghi nhớ rằng nếu không kết thúc bằng .00đầu ra sẽ được ký hiệu khoa học. Vì vậy, bạn sẽ muốn xem Hướng dẫn về kịch bản tự động hóa của Mac: Thao tác số và cũng có một cách đơn giản để ép buộc một chuỗi số trong câu trả lời cho câu hỏi này .
dùng3439894
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.