对于第一次刮刀的一些推动

时间:2015-07-03 20:21:13

标签: python beautifulsoup mechanize-python

我尝试以编程方式(在Python中)从this网站检索帐户信息,以获取我拥有的属性列表(由BRT编号标识)。

这应该非常简单,而且我已经阅读了一些我通过Google找到的东西,但由于我没有网络开发经验,所以这一切都在我脑海中。所有的白话都是一对一的。

程序应该非常简单,因为网页似乎非常简单:

  1. 设置brt,例如883309000
  2. 打开网址:http://www.phila.gov/revenue/RealEstateTax/default.aspx
  3. 选择by BRT Number字段,然后输入brt
  4. 单击>>按钮以检索属性信息。
  5. 截取底线(TOTALS)和准确日期,在这种情况下:

      

    TOTALS $ 13,359.83 $ 2,539.14 $ 1,417.73 $ 1,645.59 $ 18,962.29

  6.   

    2015年6月30日

    我主要坚持第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 个答案:

答案 0 :(得分:1)

您是否考虑过使用selenium包进行python。 这方面的文档是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()

现在你应该进入结果页面