Scrapy Shell爬取网页无任何问题,但选择器失败

2024-05-08 15:56:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这个开始爬网的url

https://autocarro.com.br/auto-busca/carros?AutoBusca=1&qc=&qt=&q=&ai=&af=&pi=&pf=&com=&cam=&cor=&por=&est=&cid=#1

当我从scrapy shell发送请求时,它被爬网,没有任何问题。当我使用view(response)时,我可以看到整个页面被呈现。这是HTML代码和呈现的网站

website

然而,当我尝试使用选择器获取标签时,它们不起作用。就像整个HTML表格主体都不在那里一样

response.css('tbody').getall()获取一个空的表体,或者我正在查找的a标记不在那里

我还检查了是否有我丢失的AJAX请求,但没有。这里有什么问题


Tags: httpsbrcomurlautoresponsehtmlqt
1条回答
网友
1楼 · 发布于 2024-05-08 15:56:54

您需要检查源数据的源HTML代码(在浏览器中通常为Ctrl+U)。对于URL,您会发现目标表是从以var COLLECTION = [开头的JavaScript代码加载的。您可以使用以下代码解析该部分:

import json

def parse(self, response):
    json_collection = response.xpath('//script[contains(., "var COLLECTION = [")]').re_first(r'var COLLECTION = (\[.+?\]);')
    data = json.loads(json_collection) # now you have everything you need here
    for element in data:
        mark = element["mar"]
        version = element["ver"]
        ........

相关问题 更多 >

    热门问题