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浅拷贝与深拷贝用法实例
May 09 Python
Python语言描述连续子数组的最大和
Jan 04 Python
python OpenCV学习笔记之绘制直方图的方法
Feb 08 Python
python如何为创建大量实例节省内存
Mar 20 Python
Pycharm 字体大小调整设置的方法实现
Sep 27 Python
python 利用turtle库绘制笑脸和哭脸的例子
Nov 23 Python
使用python实现多维数据降维操作
Feb 24 Python
python3用urllib抓取贴吧邮箱和QQ实例
Mar 10 Python
Python不支持 i ++ 语法的原因解析
Jul 22 Python
python -v 报错问题的解决方法
Sep 15 Python
windows下python 3.9 Numpy scipy和matlabplot的安装教程详解
Nov 28 Python
Python Pandas解析读写 CSV 文件
Apr 11 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
超人钢铁侠联手合作?美漫作家呼吁DC漫威合作联动以抵抗疫情
2020/04/09 欧美动漫
php中使用session_set_save_handler()函数把session保存到MySQL数据库实例
2014/11/06 PHP
php+html5使用FormData对象提交表单及上传图片的方法
2015/02/11 PHP
php断点续传之文件分割合并详解
2016/12/13 PHP
Yii 2.0自带的验证码使用经验分享
2017/06/19 PHP
PHP实现对图片的反色处理功能【测试可用】
2018/02/01 PHP
PHP使用ActiveMQ实例
2018/02/05 PHP
用javascript编写的第一人称射击游戏
2007/02/25 Javascript
jqGrid jQuery 表格插件测试代码
2011/08/23 Javascript
javascript如何创建表格(javascript绘制表格的二种方法)
2013/12/10 Javascript
使用JavaScript获取电池状态的方法
2014/05/03 Javascript
基于 Docker 开发 NodeJS 应用
2014/07/30 NodeJs
jQuery实现可高亮显示的二级CSS菜单效果
2015/09/01 Javascript
JavaScript中SetInterval与setTimeout的用法详解
2015/11/10 Javascript
基于jQuery实现美观且实用的倒计时实例代码
2015/12/30 Javascript
jquery.form.js框架实现文件上传功能案例解析(springmvc)
2016/05/26 Javascript
js删除数组元素、清空数组的简单方法(必看)
2016/07/27 Javascript
Javascript农历与公历相互转换的简单实例
2016/10/09 Javascript
JavaScript动态数量的文件上传控件
2016/11/18 Javascript
JQueryEasyUI框架下的combobox的取值和绑定的方法
2017/01/22 Javascript
详解在vue-cli中使用路由
2017/09/25 Javascript
十分钟带你快速了解React16新特性
2017/11/10 Javascript
用Python编写一个简单的FUSE文件系统的教程
2015/04/02 Python
Django学习笔记之Class-Based-View
2017/02/15 Python
Python实现的计算马氏距离算法示例
2018/04/03 Python
Python实现的括号匹配判断功能示例
2018/08/25 Python
使用CodeMirror实现Python3在线编辑器的示例代码
2019/01/14 Python
Python简单实现词云图代码及步骤解析
2020/06/04 Python
python subprocess pipe 实时输出日志的操作
2020/12/05 Python
捷克多品牌在线时尚商店:ANSWEAR.cz
2020/10/03 全球购物
构造方法和其他方法的区别
2016/04/26 面试题
股东授权委托书
2014/10/15 职场文书
工作收入住址证明
2014/10/28 职场文书
写作之关于描写老人的好段摘抄
2019/11/14 职场文书
详解NodeJS模块化
2021/06/15 NodeJs
HTML5之高度塌陷问题的解决
2022/06/01 HTML / CSS