python - Scrapy shell response.css 发送空输出
问题描述
我想通过scrapy抓取产品数据。这是产品链接:https ://www.ingco.com/products/103803
要检查我使用此代码的响应
In [2]: response.css('div.d-flex::text').get()
In [3]: response.css('div.d-flex::text').extract()
Out[3]: []
In [4]: response.css('div.d-flex::text').extract
Out[4]: <bound method SelectorList.getall of []>
In [5]: response.css('div.d-flex::text').extract()
Out[5]: []
In [6]: response.css('div.d-flex::text').extract();
In [7]: response.css('div.d-flex').extract();
但它什么也没提供。请检查我做错了什么
解决方案
如果您查看页面的实际 html 源代码(Ctrl+U
在大多数浏览器中),您会发现它不包含您要抓取的信息。
产品详细信息由 javascript 从 api url ( https://webcenterapi.ingco.com/website-product/product-info-detail?id=103803 ) 加载。
数据是 json 格式,而且 api 似乎是公开可用的,所以你的工作应该很简单。
推荐阅读
- google-app-engine - 如何使用两个 Google App Engine 映射两个 Google 自定义域
- javascript - Javascript 中带有日期和时间比较的有问题的 IF 语句(getDay、Date、setHours、show、hide)
- asp.net-core - 如何在没有 IHostedService 的情况下正确使用 .Net Core Generic Host?
- python - 在 Python Dask 中保存为文本时,对象 {...} 既不是字节对象也没有编码方法
- c# - 将用户输入保存到现有文件 ASP.NET MVC 的操作结果
- docker - Docker 内部的 Jenkins 需要运行 DotNet
- python - Django Authentication - 页面重定向到主页,即使它进入异常
- r - 在 R 中运行逻辑回归
- mysql - 如何在 mysql 服务器中保存字符集设置?
- python - 有没有办法在 cv2 中提供两个色调范围,或者排除一个范围?