【发布时间】:2021-03-25 00:12:18
【问题描述】:
我正在尝试抓取具有由 h3 标题设置的段落内容的网站。 H3 标题有标题内容(例如品牌、型号、年份),然后段落中的以下文本就是我所追求的。理想情况下,我很想使用一个类来识别段落内容,但它们都是同一个类。
另外,我应该说,我是新手,所以请原谅愚蠢的问题或口齿不清的措辞。
我已经到了可以拉出文本的地步,但由 html 段落标签分隔。我的想法是,(1)如果我能以某种方式将段落标签之间的内容转换为列表中的单个项目,我可以针对该列表编写一个循环以将这些项目修改到我正在构建的数据库中。
或者,(2)我想知道是否有某种方法可以从包含特定文本(例如福特“模型”)的标题后面的段落中提取同级段落文本。我知道你可以使用定义的 id 和类来做到这一点,但是你能根据它包含的文本识别特定的 h3 标签吗?
在过去的几天里,我一直在不停地看 youtube 和阅读论坛。任何反馈,如您所愿直言不讳,将不胜感激!我正在使用 beautifulsoup,但我很乐意做最适合这项工作的任何事情。
谢谢!
约翰
这里是 html -
<div class="entry-content bb">
<h4>Pedigree</h4>
<p>This is where the content is for pedigree that I am trying to scrape</p>
<h4>Breed</h4>
<p>This is where the content is for breed that I am trying to scrape</p>
<h4>Origin</h4>
<p>This is where the content is for origin that I am trying to scrape</p>
如果我可以单独识别下面的类,那么我将使用的代码 -
pedigree_temp = soup.find(class_='pedigree').text
pedigree_final.append(pedigree_temp)
【问题讨论】:
-
请使用 HTML 编辑您的问题。并向我们展示您迄今为止的尝试。以及预期的输出
-
如果您包含您要抓取的网站会有所帮助...
-
包括网站。另外,是全部 h4 还是只有某些需要考虑?
-
我只寻找特定的段落。以我提供的 html 为例,假设我正在寻找“谱系”和“起源”下的段落文本,而不是“品种”。阿尔伯特看起来接近我正在寻找的解决方案(通过使用我还不熟悉的正则表达式)但它似乎并不存在,因为在找到正确的 h4 元素后它似乎没有拉出同级文本。我需要找到正确的 H4 文本,然后拉出前面的段落文本,将其保存为临时变量,然后将该数据附加到我的数据表中。
标签: python html python-3.x web-scraping beautifulsoup