2014-04-23 72 views
1

我使用Python和機械化來搜索數據庫並返回結果。我在通過條款和條件頁面訪問實際的數據庫搜索頁時遇到問題。接受Python和機械化的條款和條件

我試過使用機械來操縱網頁上的同意按鈕,但我得到了這個迴應。

<Form1 POST http://www.wataugacounty.org/ias/Search/Disclaimer2.aspx?FromUrl=..% 
2fsearch%2fcommonsearch.aspx%3fmode%3dparid application/x-www-form-urlencoded 
    <HiddenControl(__EVENTTARGET=)> 
    <HiddenControl(__EVENTARGUMENT=)> 
    <HiddenControl(__VIEWSTATE=/wEPDwUKLTk3MzgyMzUzOQ8UKwACZGdkZARSom15z0v0QyobiaK 
gUmCf0EcW)> 
    <IgnoreControl(btDisagree=<None>)> 
    <IgnoreControl(btAgree=<None>)>> 
Traceback (most recent call last): 
    File "run.py", line 19, in <module> 
    br["btAgree"] = 'True' 
    File "C:\Python27\Lib\site-packages\mechanize\_form.py", line 2784, in __setit 
em__ 
raise ValueError(str(e)) 
ValueError: control 'btAgree' is ignored, hence read-only 

我不確定機械化是否能夠處理驗收。我從哪裏出發?

回答

0

機械化不會削減它,因爲它不會評估Javascript代碼,你真的需要它,因爲輸入按鈕會觸發一個Javascript函數。即使您嘗試使用機械化簡單地提交表單,您會收到以下消息:

該網站無法確認您的 免責聲明郵件的接受度。這種情況通常是因爲您的網絡瀏覽器設置爲阻止使用Javascript。本網站要求您在瀏覽器中啓用Javascript的 。 Javascript是一種 編程語言,它允許我們爲您提供比其他情況更豐富和更愉快的體驗。此網站 將不會運行沒有Javascript。

雖然你有一些選擇。

  • ghost.py是一個無頭WebKit的Web客戶端(和,因此,它會運行JavaScript)
  • Selenium
  • 同樣值得注意的是(雖然在Python不寫)是PhantomJS,另一個無頭WebKit的客戶