【发布时间】:2020-09-11 03:06:34
【问题描述】:
我正在尝试了解抓取的逻辑以及如何找到搜索到的数据。 我正在尝试抓取以下网站:
当我使用下面的代码时:
import requests
from bs4 import BeautifulSoup
page = requests.get('https://fr.finance.yahoo.com/')
soup = BeautifulSoup(page.text,'html.parser')
y = soup.find(id="market-summary")
print(y)
结果就是我想要的。
但是,当我尝试使用代码复制结果时:
import requests
from bs4 import BeautifulSoup
page = requests.get('https://fr.finance.yahoo.com/')
soup = BeautifulSoup(page.text,'html.parser')
x = soup.find("div", class_= 'Whs(nw) D(ib) Bgc($lv2BgColor) W(100%) Bxz(bb)')
print(x)
结果我得到“无”。 有人可以解释我做错了什么吗?如何使用“类”作为标签来查找我要查找的数据?
【问题讨论】:
-
这个post 报告了不同站点的相同问题,并表明问题是站点 HTML 不是“格式正确”。这是通过HTML validator 运行其源页面来验证此站点的(即复制源,因为通过 URL 选项不起作用)。但是,答案中的任何补救措施都不适用于该网站。
-
该网站有一个 GDPR cookie 请求。那些有时会干扰刮擦。见stackoverflow.com/questions/57462036/…
-
另外,当尝试对这些类使用 CSS 选择器时,我得到
SyntaxError: Document.querySelector: '.Whs(nw).D(ib).Bgc($lv2BgColor).W(100%).Bxz(bb)' is not a valid selector utils.js:332:11所以我怀疑这是故意的,这些类名可能需要转义,至少在soup.select而不是 @ 987654330@.
标签: python python-3.x web-scraping beautifulsoup