用Python中的Scrapy抓取Twitter图像对象URL



我使用Selenium和Scrapy编写了一个程序来抓取特定Twitter配置文件的图像URL。我对Selenium进行了编码以访问配置文件,但我一直无法抓取图像的URL。由于每个URL都以"开头https://pbs.twimg.com',我的目标是提取包含该文本的每个元素。

我尝试了以下代码:

sel = Selector(text=self.driver.page_source)
image_url = sel.xpath("//*[contains(text(),'https://pbs.twimg.com')]").extract()
for image in image_url:
yield {'Image': image}

当我运行它时,我没有得到任何错误,但我的输出文件只是空的。我的xPath错了吗?关于如何实现这一目标,有什么建议吗?

提前感谢!

编辑

好的,所以通过将代码修改为image_url = sel.xpath("//img/@src").extract(),我实际上可以抓取URL。现在唯一的问题是我只想要那些包含https://pbs.twimg.com',否则我也会得到所有的表情符号等。有没有建议在这行代码中构建'contains'方法?

page_source很少是完整的页面。试试这个:

elements = self.driver.find_elements_by_xpath ("//img[contains(text(),'https://pbs.twimg.com')]")
for element in elements
print(element.get_attribute('src'))

最新更新