用漂亮的汤在python中提取深层嵌套的href

我试图提取一个非常嵌套的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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章