python - 为什么我无法通过 response.css 获取所有图片链接?
问题描述
我正在尝试提取图像的所有链接,但我只能使用提取每个属性页面上的主图片
response.css('div.col-sm-12 img.visible-print-block::attr(src)').get()
除此之外,当我尝试使用此代码提取其余图像时,我得到一个空数组。如何解决这个问题?
class WebBox2Spider(scrapy.Spider):
def parse(self, response):
for prop in response.css('div.grid-item'):
link = prop.css('div.property-image a::attr(href)').get()
yield scrapy.Request(
link,
callback=self.get_loc,
meta={'item': {
'url': link,
}},
)
def get_loc(self, response):
item = response.meta.get('item')
pics_link = response.css('div.gallery img::attr(src)').getall()
item['images'] = pics_link
return item
--------------------------------------------------------------------
class CapeWaterfrontSpider(WebBox2Spider):
name = "cape_waterfront_estates"
start_urls = ['https://www.capewaterfrontestates.co.za/template/Properties.vm/listingtype/SALES',
'https://www.capewaterfrontestates.co.za/template/Properties.vm/listingtype/MONTHLY_RENTAL']
解决方案
您可以使用scrapy shell
html 的外观来检查 scrapy。您尝试获取的内容是动态加载的,因此您必须调整您的选择器,例如:pics_link = response.xpath('//*[@data-nav="thumbs"]//@data-full').extract()
推荐阅读
- python - Python:检测 API 何时更新的最佳方法?
- ruby-on-rails - Ruby on Rails - Active Admin 未定义的方法“除了”#
- java - eclipse tycho + java 11 = 未知的 OSGi 执行环境:'JavaSE-11'
- repository - Datastage 存储库窗格
- xcode - 如何#include
在 Xcode 10 中 - javascript - JavaScript:将具有父键的对象数组转换为父/子树(包括没有父的对象)
- python-requests - 使用 Python Requests 方法抓取 Instagram
- angular - 我有一个新项目,但是执行 ng serve 时出现错误
- c++ - 为什么 QJsonValue::toDouble 中存在精度损失?
- python - 输入用户名和密码 = ValueError: int() 以 10 为底的无效文字:''