我试着从Daraz在scrapy壳刮书,但我没有得到任何东西。链接:Daraz
这是我得到的结果:
In [90]: response.css('#root > div > div.ant-row.c10-Cg > div:nth-child(1) > div > div.ant-col-20.ant-col-push-4.c1z9Ut
...: > div.c1_t2i > div:nth-child(1) > div > div > div.c3KeDq > div.c16H9d > a::text').getall()
Out[90]: []
2条答案
按热度按时间nnsrf1az1#
本网站中使用了JavaScript,导致了这种效果:
Daraz是一个动态生成的网站。这意味着,只有当实际的浏览器打开网站时,才会生成某些项目。
如果你想抓取动态生成的网页,而不想使用selenium等其他工具,scrapy-splash可能是最好的方法。可以安装:
Splash是一个带有HTTP API的JavaScript渲染服务。它是一个带有HTTP API的轻量级浏览器,使用Twisted和QT5在Python 3中实现。它快速,轻量级和无状态,易于分发。
Splash是一个带有HTTP API的JavaScript渲染服务。它是一个带有HTTP API的轻量级浏览器,使用Twisted和QT5在Python 3中实现。
它的快速,轻量级和无状态,使其易于分发。
读取documentation
juzqafwq2#
Daraz是一个动态生成的网站。这意味着,只有当实际的浏览器打开网站时,才会生成某些项目。
当你从你的python文件中发出get请求时,你只能得到项目应该去的地方的框架,而不是实际的项目,所以它不会识别你发送的类名。
如果你是一个初学者,我建议你使用Selenium来抓取动态生成的网站。