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的else子句使用指南
Feb 27 Python
python中Apriori算法实现讲解
Dec 10 Python
Python嵌套式数据结构实例浅析
Mar 05 Python
解决pycharm remote deployment 配置的问题
Jun 27 Python
python字典的遍历3种方法详解
Aug 10 Python
Python定时任务随机时间执行的实现方法
Aug 14 Python
django 做 migrate 时 表已存在的处理方法
Aug 31 Python
python实现一次性封装多条sql语句(begin end)
Jun 06 Python
Python必须了解的35个关键词
Jul 16 Python
python等待10秒执行下一命令的方法
Jul 19 Python
Python实现手绘图效果实例分享
Jul 22 Python
Python plt 利用subplot 实现在一张画布同时画多张图
Feb 26 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和XSL stylesheets转换XML文档
2006/10/09 PHP
php xml留言板 xml存储数据的简单例子
2009/08/24 PHP
php curl中gzip的压缩性能测试实例分析
2016/11/08 PHP
php app支付宝回调(异步通知)详解
2018/07/25 PHP
PHP simplexml_import_dom()函数讲解
2019/02/03 PHP
PHP中关于php.ini参数优化详解
2020/02/28 PHP
PHP设计模式(五)适配器模式Adapter实例详解【结构型】
2020/05/02 PHP
jquery获取tr中控件值并操作tr实现思路
2013/03/27 Javascript
jquery中的ajax方法怎样通过JSONP进行远程调用
2014/05/04 Javascript
javascript浏览器兼容教程之事件处理
2014/06/09 Javascript
jQuery实现自定义事件的方法
2015/04/17 Javascript
浏览器复制插件zeroclipboard使用指南
2016/03/26 Javascript
jQuery Dialog 取消右上角删除按钮事件
2016/09/07 Javascript
react.js 翻页插件实例代码
2017/01/19 Javascript
JS实现动态添加DOM节点和事件的方法示例
2017/04/28 Javascript
JavaScript之map reduce_动力节点Java学院整理
2017/06/29 Javascript
微信小程序实现tab页面切换功能
2018/07/13 Javascript
JS Object.preventExtensions(),Object.seal()与Object.freeze()用法实例分析
2018/08/25 Javascript
用JS实现选项卡
2020/03/23 Javascript
vue 动态生成拓扑图的示例
2021/01/03 Vue.js
python重试装饰器示例
2014/02/11 Python
Python实现Smtplib发送带有各种附件的邮件实例
2017/06/05 Python
pyhton列表转换为数组的实例
2018/04/04 Python
tensorflow实现加载mnist数据集
2018/09/08 Python
Python 使用 Pillow 模块给图片添加文字水印的方法
2019/08/30 Python
python文件处理fileinput使用方法详解
2020/01/02 Python
Keras之自定义损失(loss)函数用法说明
2020/06/10 Python
基于Python制作一副扑克牌过程详解
2020/10/19 Python
python实现启动一个外部程序,并且不阻塞当前进程
2020/12/05 Python
个人简历中自我评价
2014/02/11 职场文书
2014年初中班主任工作总结
2014/11/08 职场文书
小学生安全保证书
2015/05/09 职场文书
入团介绍人意见范文
2015/06/04 职场文书
反腐倡廉心得体会2016
2016/01/13 职场文书
使用nginx动态转换图片大小生成缩略图
2021/03/31 Servers
PHP判断是否是json字符串
2021/04/01 PHP