You need to enable JavaScript to run this app. Python使用pandas如何在指定列第二行插入空单元格对齐图片与图注
优惠活动
大模型
产品
解决方案
定价
更多

Python使用pandas如何在指定列第二行插入空单元格对齐图片与图注

Pandas 爬虫图文数据对齐解决方案

需求说明

需要对爬取的网页图片和对应图注做对齐处理:爬取的页面内多张图片中仅第一张主图(对应类名figure.article__main-hero article__main-hero-image)无图注,其余图片均配有图注,现有代码爬取到的图注列表从第二张图片开始匹配,导致图文错位,需要在第一行图注位置插入空值实现对齐。

解决方案

核心修改点为爬取完成图注、图片版权信息列表后,在列表头部插入空值,匹配第一张无图注的主图即可,修改后的完整参考代码如下:

import pandas as pd
import requests
import re
from selenium import webdriver

# 初始化浏览器
driver = webdriver.Chrome()
url = 'https://www.homestolove.com.au/resort-style-home-three-birds renovations-22500'
driver.get(url)

# 爬取所有图片链接
url_content = requests.get(url).content.decode('utf-8')
matches_img_url = re.findall(r'img .*?srcset="(.*?)"', url_content)

main_image = []
cap_meta = []
credit = []

# 爬取主图信息
for j in driver.find_elements_by_css_selector('figure.article__main-hero article__main-hero-image'):
    main_image.append(j.text)

# 爬取所有图注
for i in driver.find_elements_by_xpath('.//figcaption[@class = "content-body__inline-image-caption"]'):
    cap_meta.append(i.text)
# 关键操作:在图注列表头部插入空值,对应第一张无图注的主图
cap_meta.insert(0, "")

# 爬取所有图片版权信息
for k in driver.find_elements_by_xpath('.//span[@class = "content body__inline-image-credit"]'):
    credit.append(k.text)
# 版权信息同样在头部插入空值对齐
credit.insert(0, "")

# 统一构造DataFrame,自动补全长度不足的字段
scrapped_urls = pd.DataFrame({
    "图片链接": matches_img_url,
    "主图标识": main_image + [None]*(len(matches_img_url)-len(main_image)),
    "图注": cap_meta + [None]*(len(matches_img_url)-len(cap_meta)),
    "版权信息": credit + [None]*(len(matches_img_url)-len(credit))
})

# 导出到CSV
scrapped_urls.to_csv('scrapped_urls_test2.csv', mode='a', index=False)
driver.quit()

内容的提问来源于stack exchange,提问作者riot12

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 05:18:02