2015-07-03 30 views
-1

我試圖以編程方式(在Python中)從this網站檢索帳戶信息以獲取我擁有的屬性列表(由BRT編號標識)。第一次刮板的一些微移

這應該是非常簡單的,我已經閱讀了一些我通過Google找到的東西,但是這完全在我的頭上,因爲我沒有網頁開發經驗,所以所有的白話都是單耳退房手續最等。

的程序應該是很簡單的,因爲網頁看起來很樸實無華:

  1. 設置brt,例如883309000
  2. 打開網址:http://www.phila.gov/revenue/RealEstateTax/default.aspx
  3. 選擇by BRT Number字段並輸入brt
  4. 單擊>>按鈕檢索屬性信息。
  5. 刮底線(TOTALS)和準確-迄今爲止,在這種情況下:

    總計$ 13,359.83 $ 2,539.14 $ 1,417.73 $ 1,645.59 $ 18,962.29

06/30/2015

我主要停留在步驟3和4,據我已經收到如:

import mechanize 
from bs4 import BeautifulSoup 

br = mechanize.Browser() 
br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36')] 
br.open('http://www.phila.gov/revenue/RealEstateTax/default.aspx') 

soup = BeautifulSoup(br.response().read()) 

#Here's the BRT Number field 
soup.find("input",{"id":"ctl00_BodyContentPlaceHolder_SearchByBRTControl_txtTaxInfo"}) 

#Here's the "Lookup by BRT" button 
soup.find("input",{"id":"ctl00_BodyContentPlaceHolder_SearchByBRTControl_btnTaxByBRT"}) 

但我真的失去了什麼從那裏做。任何幫助,將不勝感激。

回答

1

你有沒有考慮過使用python的selenium包。 此文檔爲here,我強烈建議您閱讀本文,運行一些基本測試以檢查您的理解,並在開始之前再次瀏覽。

Selenium的要點是像在瀏覽器中一樣加載頁面並執行命令(您可以使用python代碼自動執行)。

首次進口selenim:

from selenium import webdriver 
from selenium.webdriver.common.keys import Keys 

然後開始的webdriver和加載頁面,「斷言」將檢查該網頁有「稅務局」在繼續之前的稱號。

driver = webdriver.Firefox() 
driver.get("http://www.phila.gov/revenue/RealEstateTax/default.aspx") 
assert "Revenue Department" in driver.title 

在此之後,我們需要選擇BRT輸入框和發送鍵BRT

driver.find_element_by_id("ctl00_BodyContentPlaceHolder_SearchByBRTControl_txtTaxInfo").send_keys(brt) 

最後,我們需要按下>>按鈕

driver.find_element_by_id("ctl00_BodyContentPlaceHolder_SearchByBRTControl_btnTaxByBRT").click() 

現在你應該採取結果頁

+0

這工作很好!我現在只是擔心它會很慢,因爲我需要這樣做24,000次 – MichaelChirico

+1

可能需要一段時間。也許在超低服務器時間(通宵)時運行腳本,也許在每次迭代之後幾秒鐘內出現隨機延遲?祝你好運。 – par