我正在尝试使用scray来获取ID为HERO_PHOTO
的{a1}。目标元素具有以下HTML代码
<img alt="Photo of Gray Line" style="position: relative; left: -50px; top: 0px;" id="HERO_PHOTO" class="flexibleImage" src="https://media-cdn.tripadvisor.com/media/photo-s/04/71/70/7c/gray-line-tours-montreal.jpg" width="352" height="260">
在Chrome浏览器中,运行
$('#HERO_PHOTO').attr('src')
正确获取URL
^{pr2}$问题: 但是在scray中使用以下CSS选择器
response.css('#HERO_PHOTO::attr(src)').extract_first()
以及
response.css('#HERO_PHOTO').xpath('@src').extract_first()
以及
response.css('#HERO_PHOTO[src]').extract_first()
给了我们
https://static.tacdn.com/img2/x.gif
使用.extract()
也返回了相同的错误URL。在
为什么Scrapy获取不同的SRC值?在
图像链接在页面中,但不是直接作为
<img>
标记。确实有一些JavaScript代码在处理。 HTML中有一个JavaScript片段,其中包含您想要的图像链接(重新格式化):一种解析方法是使用^{} :
^{pr2}$这就是你要说的:
我相信你用错了css选择器。查看w3 schools它似乎选择了您想要的属性[src]。在
试试这个。在
在响应.css('#英雄照片[src]')。先提取_first()
我的下一个建议是,在不使用extract_first()的情况下,看看会得到什么。看看它是否在响应.css(“#英雄照片[src]”)
编辑:我认为您遇到的问题是您查询的是页面源,而不是呈现的html。这里有一个我认为正在发生的事情的链接。在
This Questions first answer
您查询的是服务器的响应,而不是JavaScript有机会操作的内容。在
相关问题 更多 >
编程相关推荐