对初次使用爬虫的一些建议

Some nudges for a first-time scraper

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

这应该很简单,我已经通过 Google 阅读了一些我发现的东西,但由于我没有 Web 开发经验所以所有的白话都是一只耳朵出另一只耳朵。

程序应该很简单,因为网页看起来很简洁:

  1. 设置brt,例如883309000.

  2. 打开url:http://www.phila.gov/revenue/RealEstateTax/default.aspx.

  3. Select by BRT Number 字段并输入 brt.

  4. 单击 >> 按钮检索 属性 信息。

  5. 抓取底线(TOTALS)和准确到现在的日期,在本例中:

    TOTALS ,359.83 ,539.14 ,417.73 ,645.59 ,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"})

但我真的不知道从那里该做什么。任何帮助将不胜感激。

您是否考虑过 python 使用 selenium 包。 这方面的文档是 here,我强烈建议你通读这篇文章,运行 一些基本测试来检查你的理解并在开始之前再次浏览它。

Selenium 的重点是像在浏览器中一样加载页面并执行命令(您可以使用 python 代码自动执行)。

首先导入selenim:

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

然后启动 webdriver 并加载页面,'assert' 将在继续之前检查页面标题中是否包含 "Revenue Department"。

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

接下来我们需要selectBRT输入框并发送密钥brt

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

最后我们需要按下 >> 按钮

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

现在您应该被带到结果页面