0

我正在尝试使用 scrapy从http://www.bcpa.com提取一些数据。我有一些地址,我想从网站中提取与每个地址相关的信息,所以我需要通过这个网址“按地址搜索” http://www.bcpa.net/RecAddr.asp

我尝试将 8433 作为街道编号,将 LAKEVIEW 作为街道名称,然后该站点将我重定向到此 URL:http ://www.bcpa.net/RecInfo.asp?URL_Folio=474128020500 ,这是我想要的。但是,如您所见,我用于搜索的信息不在结果网址中。我用检查员检查了页面,我得到了这样的信息:

在此处输入图像描述

所以,我使用scrapy做了一个发布请求,并传递如下参数:

>>> 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)
>>> 

如您所见,它不起作用,该站点将我重定向到原始页面。我不知道为什么。任何想法?

4

1 回答 1

1

在你的照片中你看到了Request Headers吗?

您必须与您的 POST 请求一起发送相同的标头,它应该可以工作。

于 2017-02-17T11:51:42.497 回答