【腾讯视频 Python 爬虫实操,看完你学会了吗?】做了一些小项目 , 用的技术和技巧会比较散比较杂 , 写一个小品文记录一下 , 帮助熟悉 。
需求:经常在腾讯视频上看电影 , 在影片库里有一个"豆瓣好评"板块 。我一般会在这个条目下面挑电影 。但是电影很多 , 又缺乏索引 , 只能不停地往下来 , 让js加载更多的条目 。然而前面的看完了 , 每次找新的片就要拉很久 。所以用爬虫将"豆瓣好评"里的电影都爬下来整理到一个表中 , 方便选片 。
文章插图
项目地址:https://github.com/yangrq1018/vqq-douban-film
1依赖需要如下Python包:
- requests
- bs4 - Beautiful soup
- pandas
2爬取影片信息首先观察电影频道 , 发现是异步加载的 。可以用Firefox(Chrome也行)的inspect中的network这个tab来筛选查看可能的api接口 。很快发现接口的URL是这个格式的:
base_url = 'https://v.qq.com/x/bu/pagesheet/list?_all=1&Append=1&channel=movie&listpage=2&offset={offset}&pagesize={page_size}&sort={sort}'其中 offset是请求页开始的位置 , pagesize是每页请求的数量 , sort是类型 。在这里 sort=21指我们需要的"豆瓣好评"类型 。pagesize不能大于30 , 大于30也只会返回三十个元素 , 低于30会返回指定数量的元素 。
# 让Pandas完整到处过长的URL , 后面会需要pd.set_option('display.max_colwidth', -1)base_url = 'https://v.qq.com/x/bu/pagesheet/list?_all=1&append=1&channel=movie&listpage=2&offset={offset}&pagesize={page_size}&sort={sort}'# 豆瓣最佳类型DOUBAN_BEST_SORT = 21NUM_PAGE_DOUBAN = 167写一个小小的循环就可以发现 , 豆瓣好评这个类型总共有167页 , 每页三十个元素 。
我们使用 requests这个库来请求网页 , get_soup会请求第 page_idx页的元素 , 用 Beautifulsoup来解析 response.content , 生成一个类似 DOM , 可以很方便地查找我们需要的element的对象 。我们返回一个 list 。每个电影条目是包含在一个叫list_item的 div里的 , 所以写一个函数来帮助我们提取所有的这样的 div 。
def get_soup(page_idx, page_size=30, sort=DOUBAN_BEST_SORT): url = base_url.format(offset=page_idx * page_size, page_size=page_size, sort=sort) res = requests.get(url) soup = bs4.BeautifulSoup(res.content.decode('utf-8'), 'lxml') return soupdef find_list_items(soup): return soup.find_all('div', class_='list_item')我们遍历每一页 , 返回一个含有所有的被 bs4过的条目元素的html的 list 。
def douban_films(): rel = [] for p in range(NUM_PAGE_DOUBAN): print('Getting page {}'.format(p)) soup = get_soup(p) rel += find_list_items(soup) return rel这是其中的一部电影的HTML代码:
<div __wind="" class="list_item"><a class="figure" data-float="j3czmhisqin799r" href=https://www.isolves.com/it/cxkf/yy/Python/2019-09-27/"https://v.qq.com/x/cover/j3czmhisqin799r.html" tabindex="-1" target="_blank" title="霸王别姬">
9.6
霸王别姬
主演:张国荣 张丰毅 巩俐 葛优
4671万
推荐阅读
- 铁观音拉酸的特点是什么
- 教你从零写一个验证码-Python图像处理实用练习
- 抖音狗子与我6分钟视频
- 铁观音茶制作要点
- 躲春可以和男朋友打电话吗,躲春和男朋友打视频可以吗
- 古代普洱茶熟茶的味道
- 八大名茶介绍
- 金骏眉冲泡小技巧
- 彻底理解python中的yield函数
- Python 网络爬虫的常用库汇总