如何使用BeautifulSoup显示隐藏的html元素?

时间:2019-07-16 22:45:32

标签: python html beautifulsoup

我正在尝试从Cilium's BPF documentation抓取视频。我可以使用Chrome DevTools找到视频链接。但是当我使用BeautifulSoup获取视频链接时。链接被隐藏。请帮助修改以下代码以获取视频链接。

有Chrome DevTools的屏幕截图。基本上,我需要“视频”标签的“ src”。 screenshot of the Chrome DevTools

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])

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

1 个答案:

答案 0 :(得分:1)

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

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