我试图提取一个非常嵌套的href。结构如下:
<div id="main">
<ol>
<li class>
<div class>
<div class>
<a class>
<h1 class="title entry-title">
<a href="http://wwww.link_i_want_to_extract.com">
<span class>
</h1>
</div>
</div>
</li>
然后还有其他<li class>
带有href的内容。所以基本上父母对孩子的顺序是
li - div - div - h1 - a href
我尝试了以下方法:
soup.select('li div div h1')
也
soup.find_all("h1", { "class" : "title entry-title" })
也
for item in soup.find_all("h1", attrs={"class" : "title entry-title"}):
for link in item.find_all('a',href=TRUE):
这些似乎都不起作用,我得到的[]
还是空.txt
文件。
另外,更令人不安的是,在定义soup
之后,我print(soup)
看不到嵌套的类,只看到顶部的那个,<div id=main>
而且这样做print soup.l
也没有检索l类。我认为我不Beautifulsoup
认识我的班级和其他人。
这对我有用
from bs4 import BeautifulSoup
html = '''
<div id="main">
<ol>
<li class>
<div class>
<div class>
<a class>
<h1 class="title entry-title">
<a href="http://www.link_i_want_to_extract.com">
<span class>
</h1>
</div>
</div>
</li>
<li class>
<div class>
<div class>
<a class>
<h1 class="title entry-title">
<a href="https://other_link_i_want_to_extract.net">
<span class>
</h1>
</div>
</div>
</li>
</ol>
</div>
'''
soup = BeautifulSoup(html, "lxml")
for h1 in soup.find_all('h1', class_="title entry-title"):
print(h1.find("a")['href'])
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句