Python爬取豆瓣视频信息代码实例


Posted in Python onNovember 16, 2019

这篇文章主要介绍了Python爬取豆瓣视频信息代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

这里是爬取豆瓣视频信息,用pyquery库(jquery的python库)。

一:代码

from urllib.request
import quotefrom pyquery
import PyQuery as pqimport requestsimport pandas as pddef get_text_page
	(movie_name): ''
'  函数功能:获得指定电影名的源代码  参数:电影名  返回值:电影名结果的源代码  '
''
url =
	'https://www.douban.com/search?q=' +
	movie_name headers = {
		'Host': 'www.douban.com',
		'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.90 Safari/537.36',
	}
r = requests.get(url, headers = headers,
	timeout = 5) return r.textdef get_last_url(
	this_text): ''
'  函数功能:根据指定的源代码得到最终的网页地址  参数:搜索结果源代码  返回值:最终的网页地址  '
''
doc = pq(this_text) lis = doc(
		'.title a').items() k = 0 this_str =
	''
for i in lis: #print('豆瓣搜索结果为:{0}'.format(
	i.text()))# print('地址为:{0}'.format(i.attr
	.href))# print('\n') if k == 0:
	this_str = i.attr.href k += 1
return this_strdef the_last_page(
	this_url): ''
'  函数功能:获得最终电影网页的源代码  参数:最终的地址  返回值:最终电影网页的源代码  '
''
headers = {
	'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.90 Safari/537.36',
}
r = requests.get(this_url, headers =
	headers, timeout = 20) return r.textdef the_last_text(
	this_text, movie_name): ''
'  函数功能:获得每一项的数据  参数:爬取页面的源代码  返回值:返回空  '
''
doc = pq(this_text)# 获取标题 title = doc(
		'#content h1').text()# 获取海报 photo =
	doc('.nbgnbg img') photo_url = photo.attr
	.src r = requests.get(photo_url) with open(
		'{m}.jpg'.format(m = movie_name),
		'wb') as f: f.write(r.content)# 电影信息 message =
	doc('#info').text()# 豆瓣评分 grade = doc(
		'#interest_sectl').text()# 剧情 things =
	doc('.related-info').text() with open(
		'{0}.txt'.format(movie_name), 'w+') as f:
	try: f.writelines([title, '\n', '\n\n',
		message, '\n\n', grade, '\n\n',
		things
	]) except: f.writelines([title, '\n',
		'\n\n', message, '\n\n', grade
	])# 演员# 演员名 name = [] person_name =
	doc('.info').items() for i in
	person_name: name.append(i.text())# 演员图片地址 person_photo =
	doc('#celebrities') j = 0
for i in person_photo.find('.avatar').items():
	m = i.attr('style') person_download_url =
	m[m.find('(') + 1: m.find(')')]# 下载演员地址 r =
	requests.get(person_download_url) try:
	with open('{name}.jpg'.format(name =
		name[j]), 'wb') as f: f.write(r.content) except:
	continue j += 1 def lookUrl(this_text,
		my_str): ''
'  函数功能:获得观看链接  参数:爬取页面的源代码  返回值:返回空  '
''
doc = pq(this_text) all_url = doc(
	'.bs li a').items() movie_f = [] movie_url = []
for i in all_url: movie_f.append(i.text()) movie_url
	.append(i.attr.href) dataframe = pd.DataFrame({
		'观看平台': movie_f,
		'观看地址': movie_url
	}) dataframe.to_csv(
		"{movie_name}的观看地址.csv".format(
			movie_name = my_str), index = False,
		encoding = 'utf_8_sig', sep = ',') def main():
	name = input('') my_str = name movie_name =
	quote(my_str) page_text =
	get_text_page(movie_name)# 得指定电影名的源代码 last_url =
	get_last_url(page_text)# 根据指定的源代码得到最终的网页地址 page_text2 =
	the_last_page(last_url)# 获得最终电影网页的源代码 the_last_text(
		page_text2, my_str)# 获得每一项的数据 lookUrl(
		page_text2, my_str)# 得到并处理观看链接main()

二:结果如下(部分例子)

1.输入天气之子

Python爬取豆瓣视频信息代码实例

Python爬取豆瓣视频信息代码实例

Python爬取豆瓣视频信息代码实例

2.输入百变小樱魔法卡

Python爬取豆瓣视频信息代码实例

Python爬取豆瓣视频信息代码实例

Python爬取豆瓣视频信息代码实例

必须是已经上映的电影才有观看地址

3.独立日

Python爬取豆瓣视频信息代码实例

Python爬取豆瓣视频信息代码实例

Python爬取豆瓣视频信息代码实例

Python爬取豆瓣视频信息代码实例

Python爬取豆瓣视频信息代码实例

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中遇到的小问题及解决方法汇总
Jan 11 Python
python距离测量的方法
Mar 06 Python
用Python分析3天破10亿的《我不是药神》到底神在哪?
Jul 12 Python
Python常见读写文件操作实例总结【文本、json、csv、pdf等】
Apr 15 Python
Python文件操作中进行字符串替换的方法(保存到新文件/当前文件)
Jun 28 Python
Django框架基础模板标签与filter使用方法详解
Jul 23 Python
详解python中的数据类型和控制流
Aug 08 Python
python监控nginx端口和进程状态
Sep 06 Python
利用python实现PSO算法优化二元函数
Nov 13 Python
django项目中新增app的2种实现方法
Apr 01 Python
Django Channel实时推送与聊天的示例代码
Apr 30 Python
如何基于python把文字图片写入word文档
Jul 31 Python
Pandas数据离散化原理及实例解析
Nov 16 #Python
python实现XML解析的方法解析
Nov 16 #Python
Python实现自定义读写分离代码实例
Nov 16 #Python
Python大数据之网络爬虫的post请求、get请求区别实例分析
Nov 16 #Python
基于python实现雪花算法过程详解
Nov 16 #Python
Python大数据之使用lxml库解析html网页文件示例
Nov 16 #Python
Python大数据之从网页上爬取数据的方法详解
Nov 16 #Python
You might like
PHP程序级守护进程的实现与优化的使用概述
2013/05/02 PHP
深入PHP FTP类的详解
2013/06/13 PHP
php计划任务之ignore_user_abort函数实现方法
2015/01/08 PHP
为百度UE编辑器上传图片添加水印功能
2015/04/16 PHP
PHP面向对象自动加载机制原理与用法分析
2016/10/14 PHP
php基于单例模式封装mysql类完整实例
2016/10/18 PHP
PHP Cli 模式设置进程名称的方法
2019/06/12 PHP
windows 2008r2+php5.6.28环境搭建详细过程
2019/06/18 PHP
javascript KeyDown、KeyPress和KeyUp事件的区别与联系
2009/12/03 Javascript
jQuery 顺便学习下CSS选择器 奇偶匹配nth-child(even)
2010/05/24 Javascript
jquery进行数组遍历如何跳出当前的each循环
2014/06/05 Javascript
jQuery学习笔记之 Ajax操作篇(三) - 过程处理
2014/06/23 Javascript
javascript实现仿腾讯游戏选择
2015/05/14 Javascript
jquery实现带缩略图的可定制高度画廊效果(5种)
2015/08/28 Javascript
在AngularJS中使用jQuery的zTree插件的方法
2016/04/21 Javascript
js无法获取到html标签的属性的解决方法
2016/07/26 Javascript
JS控制页面跳转时未请求要跳转的地址怎么回事
2016/10/14 Javascript
原生js实现查询天气小应用
2016/12/09 Javascript
利用Plupload.js解决大文件上传问题, 带进度条和背景遮罩层
2017/03/15 Javascript
详解javascript常用工具类的封装
2018/01/30 Javascript
jQuery点击页面其他部分隐藏下拉菜单功能
2018/11/27 jQuery
vue瀑布流组件实现上拉加载更多
2020/03/10 Javascript
[48:31]完美世界DOTA2联赛PWL S3 DLG vs Phoenix 第二场 12.17
2020/12/19 DOTA
Python中使用动态变量名的方法
2014/05/06 Python
Python简单格式化时间的方法【strftime函数】
2016/09/18 Python
python for循环输入一个矩阵的实例
2018/11/14 Python
python dict 相同key 合并value的实例
2019/01/21 Python
Django框架 Pagination分页实现代码实例
2019/09/04 Python
英国手工制作的现代与经典的沙发和床:Love Your Home
2020/09/26 全球购物
入股协议书范本
2014/04/14 职场文书
倡导文明标语
2014/06/16 职场文书
给老师的保证书怎么写
2015/05/09 职场文书
MYSQL数据库使用UTF-8中文编码乱码的解决办法
2021/05/26 MySQL
PyTorch 如何检查模型梯度是否可导
2021/06/05 Python
MyBatis-Plus 批量插入数据的操作方法
2021/09/25 Java/Android
分享python函数常见关键字
2022/04/26 Python