scrapy 为什么我不能从Daraz中提取书籍的名称

zazmityj  于 2023-04-21  发布在  其他
关注(0)|答案(2)|浏览(117)

我试着从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]: []
nnsrf1az

nnsrf1az1#

本网站中使用了JavaScript,导致了这种效果:
Daraz是一个动态生成的网站。这意味着,只有当实际的浏览器打开网站时,才会生成某些项目。
如果你想抓取动态生成的网页,而不想使用selenium等其他工具,scrapy-splash可能是最好的方法。可以安装:

pip install scrapy-splash

Splash是一个带有HTTP API的JavaScript渲染服务。它是一个带有HTTP API的轻量级浏览器,使用Twisted和QT5在Python 3中实现。它快速,轻量级和无状态,易于分发。
Splash是一个带有HTTP API的JavaScript渲染服务。它是一个带有HTTP API的轻量级浏览器,使用Twisted和QT5在Python 3中实现。
它的快速,轻量级和无状态,使其易于分发。
读取documentation

juzqafwq

juzqafwq2#

Daraz是一个动态生成的网站。这意味着,只有当实际的浏览器打开网站时,才会生成某些项目。
当你从你的python文件中发出get请求时,你只能得到项目应该去的地方的框架,而不是实际的项目,所以它不会识别你发送的类名。
如果你是一个初学者,我建议你使用Selenium来抓取动态生成的网站。

相关问题