如何解决调用 Twitch 时,BeautifulSoup 不返回 html
我正在尝试为 Twitch 制作一个网络爬虫,它将获得流的标题和流信息。我能够将页面的特定部分与其他网站一起取出,但是当我放入流时,它看起来不像检查元素中的 html。它只是看起来像一团糟。那么如何从中提取流标题?
import requests
from bs4 import BeautifulSoup
request = requests.get('https://www.twitch.tv/x33n')
#Streamer should be live
if request.status_code == 200:
print('Webpage loaded successfully')
else:
print('Webpage loading failed')
soup=BeautifulSoup(request.text,'html.parser')
soup = str(soup)
print(soup)
if soup != '':
print('Parser good')
else:
print("Parser Failed")
这里是输出,但它更长:
:flex}.shell-nav__ellipsis{width:5rem;display:-webkit-box;display:-ms-flexbox;display:flex;display:none;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.shell__svg--navmore{fill:rgba(255,255,.4);height:2rem}.shell-nav__search-container{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.shell-nav__search{display:none;width:100%
解决方法
许多网站使用 SPA 框架、字节码、晦涩难懂的脚本片段等。 所以你必须付出额外的努力 用于检索即时/异步创建/组合的某些内容。
如何实现您的目标:
您可以使用像 selenium 这样的无头浏览器 api,并模拟冲浪者,或者您可以尝试模拟对内部 twitch rest api 的调用。 如果您没有那么有经验,我建议您选择无头浏览器路线。
,您不能使用beautifulsoup 抓取页面源中不存在的内容。这
the title of the stream
使用 Javascript 动态加载。在抓取任何页面之前,您应该首先检查来源。
view-source:https://www.twitch.tv/x33n
在此 ^^ 中,您将无法找到流的标题。由于稍后会请求并加载此数据。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。