Python 使用scrapy进行web抓取数据的困难
我正在尝试使用scrapy from刮取数据,但是响应为空。我希望使用codePython 使用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
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,但不确定如何继续。我实际上是想从点击相应分幅后打开的页面中提取数据。