我正在尝试使用scrapy从http://www.bcpa.com中提取一些数据。我有一些地址,我想从网站上提取与每个地址相关的信息,因此我需要通过此网址“{按地址”搜索http://www.bcpa.net/RecAddr.asp
我尝试将8433作为Street Number,将LAKEVIEW作为街道名称,然后该网站将我重定向到此网址:http://www.bcpa.net/RecInfo.asp?URL_Folio=474128020500,这是我想要的。但是,正如您所看到的,我用于搜索的信息不在结果网址中。我用检查员检查了页面,我得到了这样的结果:
所以,我使用scrapy做了一个post请求,并传递了如下参数:
>>> from scrapy.http import FormRequest
>>> form_data = {"Situs_Street_Number":"8433", "Situs_Street_Name":"LAKEVIEW"}
>>> url = "http://www.bcpa.net/RecSearch.asp"
>>> r = FormRequest(url, method = "POST", formdata = form_data)
>>> fetch(r)
2017-02-16 08:22:38 [scrapy.core.engine] INFO: Spider opened
2017-02-16 08:22:40 [scrapy.core.engine] DEBUG: Crawled (200) <GET http://www.bcpa.net/robots.txt> (referer: None)
2017-02-16 08:22:41 [scrapy.downloadermiddlewares.redirect] DEBUG: Redirecting (302) to <GET http://www.bcpa.net/RecMenu.asp> from <POST http://www.bcpa.net/RecSearch.asp>
2017-02-16 08:22:41 [scrapy.core.engine] DEBUG: Crawled (200) <GET http://www.bcpa.net/RecMenu.asp> (referer: None)
>>>
正如您所看到的,它没有用,该网站将我重定向到原始页面。我不知道为什么。有什么想法吗?
答案 0 :(得分:1)
在你的图片中你看到Request Headers
吗?
您必须与POST请求一起发送相同的标头,它应该可以正常工作。