Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用scrapy进行web抓取数据的困难_Python_Python 3.x_Web Scraping_Scrapy - Fatal编程技术网

Python 使用scrapy进行web抓取数据的困难

Python 使用scrapy进行web抓取数据的困难,python,python-3.x,web-scraping,scrapy,Python,Python 3.x,Web Scraping,Scrapy,我正在尝试使用scrapy from刮取数据,但是响应为空。我希望使用coderesponse.css(“div.tiles.js-portfolio-tiles a::attr(href)”)在div.tiles js公文包tiles中刮取href。extract() 我认为这与前面出现的::before有关,但可能不是。我如何提取这个 您感兴趣检索的元素由浏览器使用javascript加载。默认情况下,scrapy不能使用javascript加载元素,因为它不是浏览器,它只是检索原始HTML

我正在尝试使用scrapy from刮取数据,但是响应为空。我希望使用code
response.css(“div.tiles.js-portfolio-tiles a::attr(href)”)在div.tiles js公文包tiles中刮取href。extract()

我认为这与前面出现的
::before
有关,但可能不是。我如何提取这个

您感兴趣检索的元素由浏览器使用javascript加载。默认情况下,scrapy不能使用javascript加载元素,因为它不是浏览器,它只是检索原始HTML

Scrapy shell是一个非常宝贵的工具,用于检查Scrapy收到的响应中可用的内容

这组命令将在默认web浏览器中打开响应:

$ scrapy shell
>>> fetch("https://www.ta.com/portfolio/business-services")
>>> view (response)
如您所见,js公文包磁贴不可见,因为它们尚未加载

我在开发者工具的网络面板中查看了AJAX请求,您需要的信息似乎可以在XHR请求中获得。如果不是,那么您将需要使用其他软件来加载javascript,即scrapy splash或selenium,我建议您首先探索AJAX(XHR)请求,因为这将更快更容易


有关使用浏览器开发工具检查AJAX请求的更多详细信息,请参见本节。

了解。我研究了AJAX请求,但是,当我试图抓取网站主页时,它们获取的URL会加载到网站主页。我已经安装了scrapy splash,但不确定如何继续。我实际上是想从点击相应分幅后打开的页面中提取数据。