python - 完整的 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)
解决方案
无法检索所有 HTML 的原因
您没有获得完整 HTML 的原因是,当您使用 requests 库发送 GET 请求时,它不会触发您尝试抓取的网站上的 javascript。
在这里,您可以看到没有触发 javascript 的页面是什么样子(完全为空):
如果你使用 chrome,你可以使用开发者工具自己查看这个。右键单击->检查元素->网络->设置->禁用javascript
一个可能的解决方案
如果您不想要可见的驱动程序,请使用selenium webdriver或 phantomJS。
推荐阅读
- javascript - 从 javascript 中的另一个应用程序调用一个应用程序中的函数
- winapi - 当 ReadFile 返回 true 时 GetOverlappedResult
- swift - 构建应用程序时,Swift 环境变量返回 nil
- javascript - Django Selenium 测试失败,因为它找不到单击后附加的元素
- java - OutOfMemoryError:创建具有 41000 行的 JTable 时获得的 Java 堆空间
- html - 增加整个表格高度时,使表格行高不改变
- php - 将数组中的值输出到php中的变量中
- javascript - WKWebView 不会对点击做出反应,而 UIWebView 会
- xamarin.ios - 将 CookieContainer 与 NSUrlSessionHandler 一起使用
- php - 在托管在 ubuntu 上的 nginx 服务器上发出 php connect with mongodb