Python网站抓取 - POST和GET

2024-09-30 20:23:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从以下网站收集公共房地产数据:http://icare.fairfaxcounty.gov/search/commonsearch.aspx?mode=address。我已经解决了第一部分,它使用POST请求搜索给定的街道(本例中的Main St)。在

from bs4 import BeautifulSoup
import requests
import urllib, urllib2

streetName = 'main'
suffix = 'st'

url = "http://icare.fairfaxcounty.gov/search/CommonSearch.aspx?mode=ADDRESS"

values = {  '__VIEWSTATE':'/wEPDwUJLTgxMDY5OTM2DxQrAAJkZxYCZg9kFgQCBQ8PFgIeB1Zpc2libGVoZBYCZg9kFgJmD2QWAgIBD2QWAgIBD2QWAgIBDxBkZBYAZAIHDw8WAh8AaGRkZA==',
      '__EVENTVALIDATION' :'/wEWCAL/k9GbBALq6fr+DwKw9e7KCwKNs9bAAwLYyu+sAwLE8frfBwK5mc2yBwLunJLZAQ==',
      'PageNum':'',
      'SortBy':'PARID',
      'SortDir': 'asc',
      'PageSize':50,
      'hdAction':'Search',
      'hdIndex': '',
      'sIndex':-1,
      'hdListType':'PA',
      'hdJur': '', 
      'inpNumber': '',
      'inpUnit': '',
      'inpStreet':streetName ,
      'inpSuffix1':suffix,
      'selSortBy':'PARID' ,
      'selSortDir': 'asc' ,
      'selPageSize':50 ,
      'searchOptions$hdBeta': '',
      'btSearch':'SEARCH',
      'mode':'ADDRESS',
      'mask': ''}

data = urllib.urlencode(values)
req = urllib2.Request(url, data)
response = urllib2.urlopen(req)
pageText = response.read()

#now I can parse the list of addresses from this page
soup = BeautifulSoup(pageText)

但是,我不知道如何创建单击其中一个地址的效果,以便能够解析该信息。有人能给我指出正确的方向吗?在


Tags: fromimporthttpurlsearchmodeurllib2urllib
1条回答
网友
1楼 · 发布于 2024-09-30 20:23:29

{it{get}没有http}请求。在

一个方向是编写a scrapy spider,其中包括以下步骤:

  1. 在它的第一个parse函数中,使用FormRequest来获取地址行
  2. 使用scrapy xpath selector在它们上循环并创建进一步的请求
  3. 定义并使用你想要获取结果的项目和格式

它有一些学习曲线,但我很确定这是正确的方向,至少其中之一,祝你好运!在

相关问题 更多 >