数据抓取,aspx

时间:2012-09-25 21:29:54

标签: python web-crawler

我在使用Python之前已经编写了网页抓取工具,但是我正在抓取的网页已经抵制了我迄今为止的努力。我正在使用Python和BeautifulSoup从网站上抓取数据。我这样做的方式有两个步骤:生成要编制索引的页面列表,然后解析这些页面。解析部分很简单,但我还没弄清楚如何导航.aspx页面,以便我可以使用Python生成链接。我现在可以手动保存搜索页面以便抓取它们,但如果可能的话,我想自动完成整个过程。

相关网页:http://cookcountyassessor.com/Property_Search/Property_Search.aspx

我需要使用表单来选择Township,然后选择邻居和属性类,它通过几个.aspx文件来获取搜索结果。我使用BeautifulSoup获取要提交的所有和标签的列表作为表单数据,修改我需要提交的字段,并发送请求,但是当我打开下一页时它不会给我预期的结果(http:// www.cookcountyassessor.com/Property_Search/nbhd_search.aspx?town=19)。

我正在构建的类中的相关代码:

self.jar = http.cookiejar.CookieJar()
self.opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(self.jar))

self.page = ['http://cookcountyassessor.com/Property_Search/Property_Search.aspx']
self.page = self.page + ['http://cookcountyassessor.com/Property_Search/nbhd_search.aspx?town=19'] #Lemont
soup = BeautifulSoup(self.opener.open(self.page[0]))
inputs = soup.findAll("input") + soup.findAll("select")
params = {"__EVENTTARGET": "", "__EVENTARGUMENT": "", "__LASTFOCUS": ""}
for i in inputs:
    try:
        params[i['name']] = i['value']
    except:
        params[i['name']] = ''
params['ctl00$BodyContent$town1'] = self.code
self.params = params
params = urllib.parse.urlencode(params)
params = params.encode()
self.opener.open(self.page[0], params)
self.page1 = BeautifulSoup(self.opener.open(self.page[1]))

当我手动提交表单时,.aspx页面似乎设置了一些cookie,然后使用标题重定向到另一个页面。使用Python提交,我在jar中没有cookie,页面似乎不接受我的帖子数据。我在这里错过了什么,或者这是一个王室的痛苦在脖子上绕走?我想我会开始插入标题,看看它是否让我随处可见......

0 个答案:

没有答案