【问题标题】:Using BeautifulSoup to scrape specific element within a CSS class使用 BeautifulSoup 抓取 CSS 类中的特定元素
【发布时间】:2020-10-31 08:01:17
【问题描述】:

我正在尝试在 Python 中使用 BeautifulSoup 来抓取 CSS 类中的第三个 li 元素。也就是说,我对此很陌生,不确定最好的方法。

在下面的示例中,我要做的是从该列表中刮掉 170 张选票(**在现实世界的示例中,我希望刮掉的页面上有数百张选票,但它们'都嵌套在第三个 li 元素内的同一个 CSS 类下)

<ul class="example-ul-class">
   <li class="example-li-class"><a href="https://wwww.example.com">EXAMPLE NAME</a></li>
   <li><i class="example-li-class">12 hours ago</time></li>
   <li><i class="example-li-class"> 170 votes</li>
   <li><i class="example-li-class">3 min read</li>
</ul>

我尝试使用类似下面的东西,但在代码之后发现错误

subtext = soup.select('.example-ul-class > li[2]')

打印(潜台词)

错误:

在 selector_iter 中 引发 SelectorSyntaxError(msg, self.pattern, index) soupsieve.util.SelectorSyntaxError:位置 29 的属性选择器格式错误 第 1 行: .example-ul-class > li[2]

**同样,期望的输出是只返回字符串'170 votes'

感谢您的帮助!

【问题讨论】:

    标签: python web-scraping beautifulsoup


    【解决方案1】:

    代替 CSS 选择器,尝试使用普通的 BS 方法进行选择:

    print(soup.find('ul',class_='example-ul-class').find_all('li')[2].text.strip())
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-16
      • 2016-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-09
      相关资源
      最近更新 更多