python - 从 craigslist 搜索中抓取每个图像

标签 python image web-scraping beautifulsoup src

我试图从 craigslist 搜索中提取每个图像 URL,但似乎无法深入到 URL 本身。当我尝试 soup.find_all("a", { "class":"result-image gallery"} )[0].img 时,它不会返回任何内容。

具体来说,我试图抓取的页面是 https://raleigh.craigslist.org/search/rea?query=duplex&sort=date&availabilityMode=0&sale_date=all+dates .

我正在尝试在以下src处获取图像:https://images.craigslist.org/00j0j_cC4PhAMdHLj_300x300.jpg

super 令人沮丧的是,我昨天能够成功完成此操作,但当时没有将该工作代码提交到 Github。我后来不小心删除了它,并且无法弄清楚我最初做了什么来使这项工作有效:(

最佳答案

您应该尝试自动化selenium 库。它允许您抓取动态渲染请求(js 或 ajax)页面数据。

from selenium import webdriver
from bs4 import BeautifulSoup
import time
from bs4.element import Tag

driver = webdriver.Chrome('/usr/bin/chromedriver')
driver.get('https://raleigh.craigslist.org/search/rea?query=duplex&sort=date&availabilityMode=0&sale_date=all+dates')
time.sleep(3)

soup = BeautifulSoup(driver.page_source,'lxml')
rowArray = soup.find_all("li", { "class":"result-row"})

for row in rowArray:
    img = row.find("img")
    if img is None:
        continue
    if isinstance(img,Tag) and img.has_attr("src"):
        print(img['src'])
        print("----------------") 

操作:

https://images.craigslist.org/00U0U_azwRntzeNXr_300x300.jpg
----------------
https://images.craigslist.org/00101_h0xsGArMWPh_300x300.jpg
----------------
https://images.craigslist.org/00J0J_2EzptPF9ysn_300x300.jpg
----------------
https://images.craigslist.org/00101_2FiqAHsu509_300x300.jpg
----------------
https://images.craigslist.org/00D0D_jQbpUTsk6o3_300x300.jpg

其中 '/usr/bin/chromedriver' selenium Web 驱动程序路径。

下载适用于 Chrome 浏览器的 selenium Web 驱动程序:

http://chromedriver.chromium.org/downloads

安装 Chrome 浏览器的网络驱动程序:

https://christopher.su/2015/selenium-chromedriver-ubuntu/

Selenium 教程:

https://selenium-python.readthedocs.io/

关于python - 从 craigslist 搜索中抓取每个图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56392436/

相关文章:

python - 尝试使用 catch block 在 Pandas 中创建汇总计数

python - 如何使用 Pyspark 从 CSV 中正确读取 JSON 字符串?

python - boto3 在 SWF 上的 60 秒超时

javascript - 上传前预览图像时出现意外行为

Java Jsoup 网页抓取

python - 从 python 中成功的正则表达式匹配构建字典

javascript - 使用 JavaScript 在 HTML 文档中嵌入 HTML 片段?

html - 边框半径在 safari 4.0、5.0 for windows 7 及更高版本中不起作用

readHTMLTables -- 检索与政府首脑相关的文章的国家名称和 url

html - 如何遍历超市网站并获取产品名称和价格?