scrapy FormRequest不能请求一个帖子
问题描述:
我想获得一个内容的列表描述。它是一个JavaScript。 他们使用method ='POST'给我这个信息。 当我尝试检查HTML中的网站..他们没有关于它的描述..只有一个脚本。当页面加载(onClick)那唯一一次我在html中看到这些描述内容。但不是在scrapy shell中。scrapy FormRequest不能请求一个帖子
这是信息,我从该网页我想申请获得:
General:
Request URL:http://map.imobiliare.ro/map/serv/detalii
Request Method:POST
Status Code:200 OK
Remote Address:46.4.85.111:80
Referrer Policy:no-referrer-when-downgrade
Response headers:
Cache-Control:private
Content-Length:1944
Content-Type:application/json; charset=utf-8
Date:Thu, 12 Oct 2017 06:41:48 GMT
Server:Microsoft-IIS/7.5
X-AspNet-Version:4.0.30319
X-AspNetMvc-Version:4.0
X-Powered-By:ASP.NET
Request Headers:
Accept:application/json, text/javascript, */*; q=0.01
Accept-Encoding:gzip, deflate
Accept-Language:en-US,en;q=0.8
Connection:keep-alive
Content-Length:50
Content-Type:application/x-www-form-urlencoded; charset=UTF-8
Cookie: ...
...
Referer:http://map.imobiliare.ro/map/home?pagenr=1&tranz=1&categ=4
User-Agent: ...
X-Requested-With:XMLHttpRequest
Form Data:
id_anunt=2754018&tranz=1&categ=4&mc=1&id_cautare=0
我试图用FormRequest来获取信息,但它给了我一个500 HTTP状态。
这是我在scrapy外壳使用的代码:
data = {'id_anunt': '2754018', 'tranz': '1', 'categ': '4', 'mc': '1', 'id_cautare': '0'}
head = {'Content-Type': 'application/json; charset=utf-8', 'Accept': 'application/json, text/javascript, */*; q=0.01'}
req = FormRequest(url="http://map.imobiliare.ro/map/serv/detalii", method='POST', formdata=data,
headers=head)
fetch(req)
答
我找到了答案....这是得到它的方式。
data = {'id_anunt': '2754018', 'tranz': '1', 'categ': '4', 'mc': '1', 'id_cautare': '0'}
req = FormRequest.from_response(response, url="http://map.imobiliare.ro/map/serv/detalii", formdata=data,
callback=self.description_items)
yield req
你必须把响应和帖子的URL也放在。