2017-10-12 93 views
0

我想获得一个内容的列表描述。它是一个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) 

回答

0

我找到了答案....这是得到它的方式。

 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也放在。