【发布时间】:2021-01-21 02:07:20
【问题描述】:
我想从此链接中提取有关网站相似性的信息:
https://www.alexa.com/siteinfo/amazon.com
我正在查看 class='site',试图从中提取信息
<a href="/siteinfo/ebay.com" class="truncation">ebay.com</a>
但我只能看到一个值。是否可以提取所有 4 个值和相关的重叠分数?
我想要实现的是一个包含这些信息的表格
W amazon.com
eBay.com 70.1
pinterest.com 54.7
wikipedia.org 51.3
facebook.com 50.4
我试过了
from bs4 import BeautifulSoup
soup = BeautifulSoup(data, "html.parser")
print([item.get_text(strip=True) for item in soup.select("span.site")])
但由于代码中的一些错误参数,这似乎足以获取信息。
【问题讨论】:
-
出现你想要的
span.truncation,a.trunctation,或div.site -
感谢您的评论,OneCricketeer。我只能从 Google Chrome 上的检查工具中看到重叠分数和站点的跨度。我看不到你提到的标签
-
此页面使用
JavaScript添加元素-但BeautifulSoup和requests无法运行JavaScript-您可能需要Selenium来控制可以运行JavaScript的真实Web浏览器 -
这不是真的@furas。虽然它确实将 JS 用于某些功能,但 OP 引用的表也可以正常加载,无需无头浏览器即可检测到
-
a.truncation是您在问题中显示的元素。分数看起来像<span class="truncation">38.0</span>,所以span.truncation。对于站点类,这些仅在 div 元素上
标签: python web-scraping beautifulsoup