首页 > 解决方案 > 完整的 Html 代码不导入 Beautiful Soup

问题描述

我正在尝试抓取网页,当我使用 request.get() 获取页面时,我没有获得整个 html 代码。当我执行代码时,正文中有一个空的 div 标签。我不确定为什么会这样。谁能帮我解决这个问题?

from bs4 import BeautifulSoup
import smtplib
import requests
r = requests.get("https://ethermine.org/miners/8153516Db85e201abD29A0FfCcd9cCeF4aFF33c6/dashboard")
data = r.text
print(data)
soup = BeautifulSoup(data,'html.parser')
mydivs = soup.find("div", attrs={"class": "card-body"})
h5 = mydivs.findChild()
span= h5.findChild()
print (span.text)

标签: pythonweb-scrapingbeautifulsoup

解决方案


无法检索所有 HTML 的原因

您没有获得完整 HTML 的原因是,当您使用 requests 库发送 GET 请求时,它不会触发您尝试抓取的网站上的 javascript。

在这里,您可以看到没有触发 javascript 的页面是什么样子(完全为空): 在此处输入图像描述

如果你使用 chrome,你可以使用开发者工具自己查看这个。右键单击->检查元素->网络->设置->禁用javascript

一个可能的解决方案

如果您不想要可见的驱动程序,请使用selenium webdriver或 phantomJS。


推荐阅读