python - 网页抓取 Youtube 频道以获取视频列表和其他详细信息
问题描述
我正在尝试抓取该网站所有上传视频的列表。我Beautifulsoap
用来获取以下详细信息:
(1) 标题
(2) 浏览量
(2) 上传日期
我做了一些检查,发现div id="details" class="style-scope ytd-grid-video-renderer
可以用来获取详细信息。这是我的 Python 代码:
from bs4 import BeautifulSoup as bs
import requests
my_url = "https://www.youtube.com/user/aandawesome/videos"
r = requests.get(my_url)
page = r.text
soup=bs(page,'html.parser')
res=soup.find_all("div",{
"id": "dismissable",
"class": ["style-scope", "ytd-grid-video-renderer"]
})
print(res)
但我无法访问该 div。输出为空。可以做些什么来解决这个问题?
解决方案
我希望下面的代码对你有帮助。
import pandas as pd
pd.set_option('max_colwidth',-1)
from bs4 import BeautifulSoup as bs
import requests
my_url = "https://www.youtube.com/user/aandawesome/videos"
r = requests.get(my_url)
page = (r.text)
soup=bs(page,'html.parser')
d = []
for match in soup.find_all('div',class_="yt-lockup-content"):
view = match.find('ul',class_="yt-lockup-meta-info")
d.append(
{
'Title': match.a.text,
'View': view.text.split("views")[0],
'Upload date':view.text.split("views")[1]
}
)
pd.DataFrame(d)
推荐阅读
- javascript - 如何在不渲染的情况下获取 vue 组件的 DOM?
- php - 我可以在使用 jquery ajax 的表单提交上同时调用同一个 php 页面上的方法以及另一个 php 代码中的方法吗?
- python - 带有 ModelSelect2Widget 的 AttributeError
- sql - SQL查询查找2020年1月连续3天购物的客户数量
- php - 尽管存在 PHP 文件名/路径无效
- google-chrome - Chrome 将 cookie 保存在哪个文件中?
- laravel - 按 start_date 和 end_date 之间的持续时间排序数据顺序
- java - 如何提升 solr 中的字段,如下面详细描述的,以按分数进行相关性排序
- javascript - Javascript - 将对象转换为数组对象
- python - 下载 gensim 数据集时出现 ValueError