gpt4 book ai didi

javascript - 如何正确使用Xpath通过scrapy抓取AJAX数据?

转载 作者:行者123 更新时间:2023-12-02 22:56:36 26 4
gpt4 key购买 nike

我正在抓取this website ,我需要的大部分数据都是用Ajax渲染的。

我一开始尝试用 Ruby 来抓取它(因为它是我最了解的语言),但没有成功。然后我被建议用Python和Scrapy来做,我尝试过,但我不明白为什么我不能获取数据。

import scrapy

class TaricSpider(scrapy.Spider):
name = 'taric'
allowed_domains = ['ec.europa.eu/taxation_customs/dds2/taric/measures.jsp?Lang=en&Taric=01042090&SimDate=20190912']
start_urls = ['http://ec.europa.eu/taxation_customs/dds2/taric/measures.jsp?Lang=en&Taric=01042090&SimDate=20190912/']

def parse(self, response):
code = response.css(".td_searhed_criteria::text").extract()
tarifs = response.xpath("//div[contains(@class, 'measures_detail')]").extract_first()

print(code)
print(test)

当我在终端上运行此命令时,我得到了 code 的尝试结果,但对于 tarifs 我得到了“None”。

您知道我的代码有什么问题吗?我尝试过不同的抓取方式,但没有任何效果。也许 xpath 不正确?或者也许我的 Python 语法很糟糕,因为我试图抓取这个网页,所以我只使用 Python。

最佳答案

您的 XPath 不起作用的原因 - 因为此数据是从 AJAX 请求添加的。如果您在浏览器中打开开发控制台并移至 Network->XHR - 您将看到 AJAX 请求。那么有2种可能的解决方案: 1. 在脚本中手动发出此请求 2.像Splash一样使用Js渲染在这种情况下,使用 Splash 将是最简单的,因为 AJAX 的响应是 Js 文件,并且并非所有数据都显示在那里。另外,我建议您查看 Aquarium,这是一个包含 Splash、HAProxy 和 docker-compose 的工具

关于javascript - 如何正确使用Xpath通过scrapy抓取AJAX数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57952784/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com