Post 使用 scrapy 的请求没有正确重定向?

Post request with scrapy not redirecting properly?

我正在尝试从 http://www.bcpa.com using scrapy. I have some addresses and I want to extract from the website the info associated to each one of the addresses, so I need to "search by address" through this urls http://www.bcpa.net/RecAddr.asp

中提取一些数据

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

所以,我使用 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)
>>> 

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

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

您必须发送相同的 headers 以及您的 POST 请求,它应该有效。