需要帮助使用 bs4 和 python 从幻灯片中抓取图像

Posted

技术标签:

【中文标题】需要帮助使用 bs4 和 python 从幻灯片中抓取图像【英文标题】:Need help scraping images from a slideshow with bs4 & python 【发布时间】:2019-06-30 10:21:33 【问题描述】:

我正在尝试从 Craigslist 抓取列表信息,不幸的是,我似乎无法获取图像,因为它们是幻灯片。

import requests
from bs4 import BeautifulSoup as soup

url = "https://newyork.craigslist.org/search/sss"
r = requests.get(url)
souped = soup(r.content, 'lxml')

由于图像甚至不在请求的 html 文件中,我是否需要以某种方式动态加载页面或其他东西。如果是这样,我只能将它保存在 python 中,我不想要任何其他依赖项。在此先感谢,对此非常陌生,因此任何帮助都会有所帮助。

【问题讨论】:

如您所见,您有图像的链接,我建议您提取 URL,然后使用 requests 使用这些 URL 下载图像。请参阅this post 以使用该模块下载图像 谢谢,但我不想下载图片,只是想要链接。我有一个循环,可以将列表的标题、位置、价格等添加到 CSV 文件中,我只是希望它也将图像的链接添加到其中。对不起,我是 python 的菜鸟,所以一个简单的解决方案会很有帮助。 【参考方案1】:

查找类为result-image gallery 的A 标记。这些标签中的每一个都有一个data-ids 属性,该属性旧有部分图像文件的名称。

<a href="https://newyork.craigslist.org/mnh/fuo/d/new-york-city-3-piece-shaped-ikea-couch/6812749499.html" class="result-image gallery" data-ids="1:00707_iRUU5VKwkWi,1:00H0H_6AIBqK2iQDU">
           ....
</a>

现在,如果您想获取 url,首先获取该属性并解析部分图像的名称(在该示例中,00707_iRUU5VKwkWi00H0H_6AIBqK2iQDU)。

现在您可以使用主机、后缀 (_300x300) 和扩展名构建网址:

https://images.craigslist.org/00707_iRUU5VKwkWi_300x300.jpg
https://images.craigslist.org/00H0H_6AIBqK2iQDU_300x300.jpg

【讨论】:

谢谢! ? 正是我想要的。

以上是关于需要帮助使用 bs4 和 python 从幻灯片中抓取图像的主要内容,如果未能解决你的问题,请参考以下文章

在 Python 中使用 BS4 抓取数据,嵌套表

Python - BS4 - 仅使用表头+保存为字典从维基百科表中提取子表

Python 从底层结构聊 Beautiful Soup 4(内置豆瓣最新电影排行榜爬取案例)!

python爬虫时,bs4无法读取网页标签中的文本

虚拟环境中没有名为“bs4”的模块

如何使用 python(最好是 BS4)从 Google 图片(或 bing)中找到图片的 url?