【问题标题】:I’d like to scrape the text in nested elements within multiple divs我想在多个 div 中的嵌套元素中抓取文本
【发布时间】:2015-12-23 07:19:35
【问题描述】:

在 python3 中使用 BeautifulSoup4 我想在 div 内的嵌套元素中抓取文本。但首先,我想提取也嵌套在 div 中的元素中的链接。

我将如何获取一个链接 LINK-I-WANT.COM 和一个图像 IMAGE-I-WANT.JPG 嵌套在这样的东西中:

<section class="LINK_CLASS">
    <div class="LINK_CLASS2">
        <div class="LINK_CLASS3">
            <span class="#">random text</span>
            <a href="LINK-I-WANT.COM">
                <img  src="IMAGE-I-WANT.JPG" class="IMG_CLASS"/>
            </a>
        </div>
    </div>
</section>

所有被抓取的链接将被保存到一个列表中,脚本将遍历每个链接并找到很长的内容:

<div class=“CLASS_ONE”>
    <div class=“CLASS_TWO”>
      <ul>
        <li><span>FOO</span>BAR</li>
        <li><span>FOO2</span>BAR2</li>
        <li><span>FOO3</span>BAR3</li>
        <li><span>FOO4</span>BAR4</li>
      </ul>
    </div>
</div>

使用上面的示例,我将如何访问FOO#BAR#,以便当我遍历每个链接并找到每个页面的信息(FOO# 和 BAR#)时,我可以将其打印到为每个链接生成文本文件?

如果我没有任何意义,请原谅我。这是我对代码的尝试,我将不胜感激。

def spider(max_pages):
    page = 1
    subs = []
    print("Getting links...")
    while page <= max_pages:
        url = "http://example.com" 
        source_code = requests.get(url)
        plain_text = source_code.text
        soup = BeautifulSoup(plain_text, "html.parser")
        for link in soup.findAll("section",{"class":"LINK_CLASS"}):

这是我卡住的部分...如果&lt;a&gt; 标签有一个类,这会容易得多,不幸的是,&lt;a&gt; 标签只有一个href,所以我必须尝试访问它通过指向其他元素。我不知道如何在元素中查找元素,有人可以帮我吗?

【问题讨论】:

    标签: python html web-scraping beautifulsoup web-crawler


    【解决方案1】:

    在这种情况下,有多种方法可以找到所需的链接。我会做一个CSS selector

    for link in soup.select("section.LINK_CLASS > div.LINK_CLASS2 > div.LINK_CLASS3 > a[href]"):
        print(link["href"])
    

    . 会检查一个类的存在,&gt; 是一个直接的父子关系检查。换句话说,我们正在定位具有href 属性的a 元素,该属性位于div 元素的正下方,LINK_CLASS3 类位于div 元素的正下方,LINK_CLASS2 类位于@987654331 的正下方带有LINK_CLASS 类的@元素。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-31
      • 1970-01-01
      • 2023-03-23
      • 2021-10-14
      • 1970-01-01
      • 2014-05-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多