簡體   English   中英

如何以編程方式抓取網頁並“點擊”javascript按鈕?

[英]How can I programmatically scrape a web page and “click” a javascript button?

我正在嘗試抓取一個網頁進行工作,其中有數百個表行和一個復選框,並提交表單我需要單擊一個調用javascript函數的按鈕。 html中的按鈕如下所示:

<a onclick="JavaScript: return verifyChecked('Resend the selected request for various approvals?');"
id="_ctl0_cphMain_lbtnReapprove"
title="Click a single request to send to relevant managers for reapproval."
class="lnkDBD" href="javascript:__doPostBack('_ctl0$cphMain$lbtnReapprove','')"
style="border-color:#0077D4;border-width:1px;border-style:Solid;text-decoration: overline;">&nbsp;Resend&nbsp;</a>

我知道像美麗的湯這樣的圖書館你可以通過在網址中添加帖子數據來提交表格,但是我怎樣才能勾選一個復選框並“點擊”這個javascript按鈕? 該網站是各種各樣的幫助台,對於這個特定的按鈕,我們只能檢查一個請求,當需要重新提交數百個請求時,這個請求會花費太長時間。

當我勾選復選框時,會彈出一條消息,確認我要這樣做,我不知道這是否會影響以編程方式提交它。

編輯:我忘了包含doPostBack方法。

<script type="text/javascript"> 
<!--
var theForm = document.forms['aspnetForm'];
if (!theForm) {
    theForm = document.aspnetForm;
}
function __doPostBack(eventTarget, eventArgument) {
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
        theForm.__EVENTTARGET.value = eventTarget;
        theForm.__EVENTARGUMENT.value = eventArgument;
        theForm.submit();
    }
}
// -->
</script>

你可能最好使用像selenium這樣的瀏覽器自動化庫。

獲取Firefox和Firebug ,打開Firebug加載頁面,並在控制台選項卡中查看它實際發送到服務器的內容。

然后使用您喜歡的工具重復發送它的內容。

在此輸入圖像描述

試試Imacros。 對於簡單的瀏覽器自動化,它非常出色。 您可以記錄您的會話,並根據該代碼生成代碼。 如果有更多邏輯,非復雜文檔中的標准編程可以讓您快速進行。 您也可以在語言/腳本之外進行校准。 例如,我用過一些項目:

1)收集業務線索:一個站點有一個所有的零售商店列表,但不會給他們所有接近用戶輸入的郵政編碼。 在電子表格中放了大量的郵政編碼,當運行時,會從csv中查看每個郵件並在csv文件中搜索商店信息。 每隔5分鍾就會在PC上打開VPN程序並更改ip。 拿。 20分鍾制作。

我准備編程然后好了,但我發現這是最好的方法,因為如果站點更改它更容易調試,它們的“代碼”非常簡單,您可以輕松地調用其他腳本和文件。 Firefox添加是最穩定和免費的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM