如何从div中提取h2标题并与对应div价格关联打印?
爬虫问题解决方案
1. 关联标题与价格输出
网页中每个广告的标题和价格属于同一广告条目,先定位每个广告的父容器(页面中每个广告都包裹在class="inzerat"的div内),在每个父容器内分别提取标题和价格,即可保证两者一一对应,用单个循环完成输出。
2. 仅提取div内的h2标签内容
找到class="inzeratynadpis"的div后,使用.find("h2")精准获取其中的h2标签,再提取其文本内容,就能避免获取div下的所有内容。
修改后的完整代码
from bs4 import BeautifulSoup import requests url = 'https://auto.bazos.cz/bmw/?hledat=&hlokalita=15000&humkreis=50&cenaod=30000&cenado=100000&order=1' result = requests.get(url) doc = BeautifulSoup(result.text, "html.parser") # 定位每个广告的父容器 ads = doc.find_all("div", {"class": "inzerat"}) for ad in ads: # 提取标题:找到inzeratynadpis div下的h2标签文本 title_div = ad.find("div", {"class": "inzeratynadpis"}) title = title_div.find("h2").text.strip() if title_div else "无标题" # 提取价格:找到inzeratycena div的文本 price_div = ad.find("div", {"class": "inzeratycena"}) price = price_div.text.strip() if price_div else "无价格" # 关联输出 print(f"标题:{title}") print(f"价格:{price}") print("-" * 30)
内容的提问来源于stack exchange,提问作者filidoublep
相关产品推荐
相关产品推荐

