【发布时间】:2020-05-20 12:34:18
【问题描述】:
我正在尝试使用 Python 中的 BeautifulSoup 制作一个基本的网络爬虫。但是我的目标页面使它变得困难。
当我提出请求时,我会收到带有 HTML 的响应。但是在正文中,它只显示 1 个 div:
'<div id="miniwidget" style="width:100%; height:100%;"></div>'
我已经在 Google Chrome 中浏览了网站 HTML,但我对此很陌生,无法完全理解为什么该页面不会生成该 div 中的所有内容。
我将如何进行生成 HTML 其余部分的请求?
这是我写的:
from bs4 import BeautifulSoup
from urllib.request import urlopen
def Call_Webpage(url):
html = urlopen(url)
bsObj = BeautifulSoup(html, features="html.parser")
soup = bsObj.body.findAll('div')
print(soup)
回复:
<div id="miniwidget" style="width:100%; height:100%;"></div>
【问题讨论】:
-
听起来内容可能是使用 JavaScript 动态加载的。如果是这种情况,您将无法使用 BeautifulSoup 来抓取网站,而需要使用 Selenium 之类的其他东西。
-
老实说,我有一种感觉,但我真的希望不是。我会试试看。
-
检查内容是否是动态生成的?此外,变量和函数名称应遵循
lower_case_with_underscores样式。 -
是的,发现内容是动态生成的。
标签: python html http beautifulsoup urllib2