我的工作刮网站,我想提取数据之间的2个标题和标签,它的第一个标签作为键值对。
如何提取标题下的文本(如h1和h2)?
soup = BeautifulSoup(page.content, 'html.parser')
items = soup.select("div.conWrap")
htag_count = []
item_header = soup.find_all(re.compile('^h[1-6]'))
for item in item_header:
htag_count.append({item.name:item.text})
print(htag_count)
1条答案
按热度按时间oogrdqng1#
如果
h_
标记不共享直接父标记,则此操作将不起作用,但您可以尝试在每个h_
标记之后循环兄弟标记[并在到达下一个h_
标记时停止]。我无法正确地测试这个,因为你没有包含任何html片段,也没有链接到你想刮取的网站,但当尝试在维基百科页面上,
hSections
(截断和制表后)看起来像:如果您对将子节嵌套到父节感兴趣,也可以查看this solution。