【问题标题】:Web scraping withe BeautifulSoup and unfound content使用 BeautifulSoup 和未找到的内容进行网络抓取
【发布时间】: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


【解决方案1】:

取决于您想在该页面上找到什么... 例如对于检查元标记,您将使用 soup.find_all('meta') 等。

你也可以这样做

    request = urllib.request.Request(domain_url, None, headers)
    result = urllib.request.urlopen(request,timeout=timeout)
    resulttext = result.read()

将整个页面作为文本获取

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-01
    • 1970-01-01
    • 2017-10-08
    • 2021-09-10
    • 2020-09-13
    • 2020-08-09
    • 2017-06-11
    相关资源
    最近更新 更多