python - 如何使用 BeautifulSoup 库获取所有带有“titular”类的标签?
解决方案
页面的很大一部分(实际上是大部分)是用 JavaScript 呈现的,这从文章加载之前(相对)较长的等待时间可以看出。该requests
模块不执行 JavaScript,因此只有一个a.titular
元素。您可以使用selenium
,等待 JavaScript 呈现,然后将页面源传递给bs4.BeautifulSoup()
.
>>> import bs4
>>> from selenium import webdriver
>>> browser = webdriver.Firefox()
>>> browser.get("https://elperuano.pe/")
>>> soup = bs4.BeautifulSoup(browser.page_content, features="html.parser")
>>> len(soup.select("a.titular"))
29
您必须安装selenium
: $ pip install selenium
。
仅供参考:a.titular
选择器等效于a[class='titular']
选择器,它选择所有<a class="titular">
元素。(有关 CSS 选择器的列表,请参阅本指南。)
推荐阅读
- php - 在不使用隐藏文本框的情况下将取消选中复选框设置为 0
- javascript - 如何将类语法中的 JSON 发送到 API?
- flutter - 如何在 Flutter 的单例中使用 Provider.of(...)?
- ios - iOS: Can I tell if a user has opted-out of Apple's "Share With App Developers" setting?
- c# - 如何使用 Audit.Net 定位另一个数据库 - Audit.EntityFramework.Core
- macos - 如何将 .kext 文件复制到扩展文件夹
- apache-kafka - Kafka 消费者组脚本查看所有消费者组不工作
- html - 无法将我的输入光标焦点放在文本框上
- visual-studio - .NET Core MSTest 项目在 Microsoft 命名空间中找不到 VisualStudio 类型或命名空间
- ios - 运行颤振升级后iOS模拟器性能不佳