【发布时间】:2018-04-12 21:16:05
【问题描述】:
借助 Beautiful Soup 和请求库,我可以抓取 HTML 内容,但不能抓取 JavaScript 或 AJAX 调用加载的内容。
如何通过我的 Python 脚本来模拟这一点?因为当我们滚动页面时 YouTube cmets 会加载。我找到了两种方法;一个使用 Selenium,另一个使用 lxml 请求,我有点看不懂。
示例 (this is the video):
import requests
from bs4 import BeautifulSoup as soup
url = 'https://www.youtube.com/watch?v=iFPMz36std4'
response = requests.get(url)
page_html = response.content
#print page_html
page_soup=soup(page_html,"html.parser")
print page_soup
【问题讨论】:
-
请在此处以纯文本形式发布代码、错误、示例数据或文本输出,而不是难以阅读的图像,不能复制粘贴以帮助测试代码或在答案中使用,并且对使用屏幕阅读器的人怀有敌意。您可以编辑问题以在问题正文中添加代码。使用
{}按钮来格式化任何代码块,或者使用四个空格缩进以获得相同的效果。 我们无法将您的屏幕截图作为代码运行。 -
您必须使用浏览器实例,例如 phantomjs 或 headless chrome 来加载页面并呈现动态内容。
-
'我有点听不懂':这就是你的基本困难,就在那里。使用硒很可能做你想做的事。但是,这不是一个教程网站。你需要去找到其中的一个,并学习足够的知识来编写一些代码来尝试做你想做的事情。
标签: python web-scraping beautifulsoup python-requests dynamic-html