我刚看完一本关于靓汤的教程,我想用它从谷歌上获取一些数据
我刚刚googled coronavirus UK想搜集一下目前的确诊病例数
网页右上方是一个方框,显示英国确诊病例的数量。检查该元件后,我发现它位于该块中:
<td jsname="VBiLTe" class="dZdtsb QmWbpe ZDeom" data-absolute-value="276332" data-is-data-cell="true"
data-per-million-value="4258.258906030955" data-vfs="276332"><div class="amyZLb">Confirmed</div><div
class="m7B03"><div jsname="fUyIqc"><span>276K</span></div><div jsname="KBqmYc" style="display:none">
<span>4,258</span></div></div><div class="h5Hgwe"><div jsname="fUyIqc">+<span>1,570</span></div></div>
</td>
上面代码块中的data vfs键保存了我想要刮取的值。我以为这段代码可以帮你刮取这个值
from bs4 import BeautifulSoup
import requests
source = requests.get("https://www.google.com/search?q=coronavrius+uk&rlz=1C1CHBF_en-GBGB813GB813&oq=cor&aqs=chrome.0.69i59l2j0j69i57j35i39j69i64j69i60l2.1384j0j4&sourceid=chrome&ie=UTF-8").text
soup = BeautifulSoup(source,'lxml')
test=soup.find("td",class_="dZdtsb QmWbpe ZDeom")
print(test["data-vfs"])
但是,test返回为none(在运行代码时会出现错误),这意味着什么也找不到?我一直想弄明白为什么这么久了,但什么也没想到。如何修改find中的参数以获取数字
“jsname”可能表示在加载主页之后,javascript会动态加载该网页块。当您使用BeautifulSoup时,它将下载源代码,但在解析之前不会在页面上执行任何javascript
您可能想看看“Selenium”,它是一种无头浏览器,或者学习使用更简单的源代码的静态页面的BeautifulSoup。例如,谷歌从某个地方获取数据,找到源代码并刮取该页面
祝你好运
要从Google提供的页面获取信息,您需要指定
User-Agent
头例如:
印刷品:
编辑:从2020年7月6日起运行代码打印:
相关问题 更多 >
编程相关推荐