Python爬虫如何从h4标签中同时获取链接和文本?现有脚本改造
Python 抓取h4标签文本和对应链接实现方案
你可以直接基于现有脚本调整BeautifulSoup的查找逻辑,适配h4标签嵌套a标签的结构同步提取两个字段即可,修改后的可运行代码如下:
import numpy as np from time import sleep from random import randint from selenium import webdriver from bs4 import BeautifulSoup pages = np.arange(1, 2, 1) # 存储结构改成字典,方便区分标题文本和对应链接 data = [] # 优化:把浏览器初始化放到循环外,避免重复打开窗口,不需要可以删掉改回你原来的逻辑 driver = webdriver.Chrome(r"C:\Users\ssakorkar\Desktop\chromedriver") for page in pages: page_url = "https://www.bartonassociates.com/blog/tag/Infographics/p" + str(page) driver.get(page_url) sleep(randint(2,10)) soup = BeautifulSoup(driver.page_source, 'html.parser') # 查找页面所有h4标签 h4_tags = soup.find_all('h4') for h4 in h4_tags: # 提取h4内部嵌套的a标签 link_tag = h4.find('a') # 加判断避免部分h4下无a标签时报错 if link_tag: # 提取链接和文本,strip=True可以去掉文本前后的空白换行 item = { 'title': link_tag.get_text(strip=True), 'url': link_tag.get('href') } data.append(item) # 抓取完成后关闭浏览器 driver.quit() # 测试打印抓取结果 for item in data: print(f"标题:{item['title']},链接:{item['url']}")
关键修改说明
- 把原脚本中查找class为
author的逻辑替换为查找页面所有h4标签 - 遍历每个h4标签时,优先提取其内部嵌套的a标签的
href属性(对应链接)和文本内容 - 存储结构调整为字典格式,你可以根据后续使用需求改成元组、列表等其他格式
- 新增了非空判断,避免部分h4标签下没有a标签时触发空对象报错
- 可选优化:将浏览器初始化逻辑移到循环外,减少重复启动浏览器的性能消耗
你提供的h4标签示例截图如下,上述逻辑完全适配该链接嵌套在h4内部a标签的结构:
内容的提问来源于stack exchange,提问作者Swas
相关产品推荐
相关产品推荐

