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基于xml parse实现解析cdatasection数据
Sep 30 Python
python的mysqldb安装步骤详解
Aug 14 Python
Python实现简易版的Web服务器(推荐)
Jan 29 Python
Python模块搜索路径代码详解
Jan 29 Python
python爬虫的数据库连接问题【推荐】
Jun 25 Python
Python将文本去空格并保存到txt文件中的实例
Jul 24 Python
解决python ogr shp字段写入中文乱码的问题
Dec 31 Python
python3发送request请求及查看返回结果实例
Apr 30 Python
mac安装python3后使用pip和pip3的区别说明
Sep 01 Python
教你如何用python操作摄像头以及对视频流的处理
Oct 12 Python
Python中生成ndarray实例讲解
Feb 22 Python
详解Golang如何实现支持随机删除元素的堆
Sep 23 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
SWFUpload与CI不能正确上传识别文件MIME类型解决方法分享
2011/04/18 PHP
基于PHP的cURL快速入门教程 (小偷采集程序)
2011/06/02 PHP
php mssql扩展SQL查询中文字段名解决方法
2012/10/15 PHP
实例讲解通过​PHP创建数据库
2019/01/20 PHP
YII框架关联查询操作示例
2019/04/29 PHP
ie 调试javascript的工具
2009/04/29 Javascript
从零开始学习jQuery (二) 万能的选择器
2010/10/01 Javascript
一些javascript一些题目的解析
2010/12/25 Javascript
jQuery中$.fn的用法示例介绍
2013/11/05 Javascript
用js来刷新当前页面保留参数的具体实现
2013/12/23 Javascript
Node.js实现JS文件合并小工具
2016/02/02 Javascript
非常漂亮的相册集 使用jquery制作相册集
2016/04/28 Javascript
JavaScript实现图片切换效果
2017/08/12 Javascript
基于javascript中的typeof和类型判断(详解)
2017/10/27 Javascript
基于Vue的ajax公共方法(详解)
2018/01/20 Javascript
JavaScript 有用的代码片段和 trick
2018/02/22 Javascript
解决layer图标icon不加载的问题
2019/09/04 Javascript
《javascript设计模式》学习笔记五:Javascript面向对象程序设计工厂模式实例分析
2020/04/08 Javascript
vue的$http的get请求要加上params操作
2020/11/12 Javascript
[02:56]DOTA2矮人直升机 英雄基础教程
2013/11/26 DOTA
[01:07:41]IG vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
[42:20]Winstrike vs VGJ.S 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
python基础之入门必看操作
2017/07/26 Python
Python爬虫工程师面试问题总结
2018/03/22 Python
Python实现ping指定IP的示例
2018/06/04 Python
使用Python计算玩彩票赢钱概率
2019/06/26 Python
Python 3.8 新功能全解
2019/07/25 Python
windows下Python安装、使用教程和Notepad++的使用教程
2019/10/06 Python
python怎么对数字进行过滤
2020/07/05 Python
HTML5 Canvas如何实现纹理填充与描边(Fill And Stroke)
2013/07/15 HTML / CSS
What's the difference between deep copy and shallow copy? (深拷贝与浅拷贝有什么区别)
2015/11/10 面试题
大学生个人总结范文
2015/02/15 职场文书
2015年公务员工作总结
2015/04/24 职场文书
2015年度企业工作总结
2015/05/21 职场文书
2016猴年春节问候语
2015/11/11 职场文书
高中生社会实践心得体会
2016/01/14 职场文书