首页 > 解决方案 > 需要帮助使用 bs4 和 python 从幻灯片中抓取图像

问题描述

我正在尝试从 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 中,我不想要任何其他依赖项。在此先感谢,对此非常陌生,因此任何帮助都会有所帮助。

标签: pythonhtmlcssweb-scrapingbeautifulsoup

解决方案


查找带有 classes 的 A 标记result-image gallery。这些标签中的每一个都有一个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) 和扩展名构建 url:

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

推荐阅读