【问题标题】:How to display hidden html elements using BeautifulSoup?如何使用 BeautifulSoup 显示隐藏的 html 元素?
【发布时间】:2019-07-16 22:45:32
【问题描述】:

我正在尝试从website 中抓取视频。我可以使用 Chrome DevTools 找到视频链接。但是当我使用 BeautifulSoup 获取视频链接时。链接已隐藏。请帮忙修改以下代码获取视频链接。

有 Chrome DevTools 的截图。基本上,我需要“video”标签的“src”。

import re
import urllib.request
from bs4 import BeautifulSoup as BS

url_video='http://s.weibo.com/video?q=%23%E6%AC%A7%E9%98%B3%E5%A6%AE%E5%A6%AE%23&xsort=hot&hasvideo=1&tw=video&Refer=weibo_video'
#open and read page
page=urllib.request.urlopen(url_video)
html=page.read()
#create BeautifulSoup parse-able "soup"
soup = BS(html, "lxml")

lst_url_video=[]
print(soup.body.find_all('div',class_='thumbnail')[0])

请帮忙修改代码获取视频链接。

【问题讨论】:

    标签: python html beautifulsoup


    【解决方案1】:

    该站点可能正在使用某些客户端 javascript 来加载其某些 html 内容。当您使用 urllib.request 发出请求时,它不会执行任何客户端 JavaScript。因此,如果该站点确实通过客户端 javascript 加载了一些 html 内容,您将需要一个 javascript 引擎来运行它(即网络浏览器)。您可以在抓取网页时使用无头浏览器执行客户端 JavaScript。这是在 puppeteer 中使用 chrome headless 的指南

    https://medium.com/@e_mad_ehsan/getting-started-with-puppeteer-and-chrome-headless-for-web-scraping-6bf5979dee3e

    【讨论】:

    • 您好 Eitan,感谢您的回复。问题解决了。
    猜你喜欢
    • 2018-01-05
    • 1970-01-01
    • 1970-01-01
    • 2017-04-06
    • 1970-01-01
    • 1970-01-01
    • 2013-05-04
    • 2016-04-05
    • 2015-01-24
    相关资源
    最近更新 更多