今日内容:

一、爬虫三部曲:

1、发送请求

2.解析数据

3.保存数据

4、解析详情页,获取视频地址

mport requests
import re #正则模块
import uuid
#uuid.uuid4(),根据时间戳,生成一段世界上惟一的字符串
#导入线程池模块 #爬虫三部曲
#1.发送请求
def get_page(url):
response=requests.get(url)
return response
#2.解析数据
def parse_index(text):
res = re.findall('<a href="video_(.*?)"', text, re.S)
#print(res)
detail_url_list=[]
for m_id in res:
# 拼接详情页url
detail_url = "https://www.pearvideo.com/video_" + m_id
detail_url_list.append(detail_url)
return detail_url_list #4.解析详情页,获取视频url
def parse_detail(text):
movie_url=re.findall('srcUrl="(.*?)"',text,re.S)[0]
return movie_url #3.保存数据
# def save_movie(movie_url):
# response=requests.get(movie_url)
# with open(f'{uuid.uuid4()}.mp4','wb')as f:
# f.write(response.content)
# f.flush()
if __name__ == '__main__':
#main+回车键 index_res=get_page(url='https://www.pearvideo.com/') detail_url_list=parse_index(index_res.text)
#print(detail_url_list) for detail_url in detail_url_list:
detail_res=get_page(url=detail_url)
movie_url=parse_detail(detail_res.text)
print(movie_url) # save_movie(movie_url)

二、带参数的爬虫

# '''
# 知乎添加了反爬功能,需要添加参数使用user-agent
# '''
import requests
headers={'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36'
}
# #在get请求内添加user-agent
# response=requests.get(url='https://www.zhihu.com/explore',headers=headers)
# with open('zhihu.html','w',encoding='utf-8') as f:
# f.write(response.text) '''
params参数
访问百度搜查朴灿烈url
'''
from urllib.parse import urlencode
# url='https://www.baidu.com/s?ie=utf-8&f=3&rsv_bp=1&tn=02003390_3_hao_pg&wd=%E6%9C%B4%E7%81%BF%E7%83%88'
url='https://www.baidu.com/s?'+urlencode({'wd':'朴灿烈'})
print(url)
# response=requests.get(url,headers=headers,params={'百度':'安徽工程大学'})
# with open('gongcheng.html','w',encoding='utf-8')as f:
# f.write(response.text)

三、爬取梨视频

'''
爬取梨视频(下面三条信息从浏览器中查看) Request URL:
https://www.pearvideo.com/ Request Method:
GET Request headers:
user-agent: *********** ''' import requests
import re # 正则模块
import uuid # uuid.uuid4() 可以根据当前时间戳随机产生成唯一的字符串 # 爬虫三部曲 # 1. 发送请求
def get_page(index_url):
response1 = requests.get(index_url)
return response1 # 2. 解析数据
# 解析主页获取视频页详情ID def main_index(text): # 获取主页视频详情页ID
res1 = re.findall('<a href="video_(.*?)"', text, re.S) detail_list1 = [] for m_id in res1: # 拼接详情页url
url1 = 'https://www.pearvideo.com/video_' + m_id
detail_list1.append(url1) return detail_list1 # 3. 保存数据
def save_data(v_url):
response2 = requests.get(v_url) with open('{}.mp4'.format(uuid.uuid4()), 'wb') as f:
f.write(response2.content)
f.flush() # 解析详情页获取视频url
def video_detail(text): ''' (.*?) : 提取括号的内容
.*? : 直接匹配
<video.*?src="(.*?)" srcUrl="(.*?)"
''' video_url1 = re.findall('srcUrl="(.*?)"', text, re.S)[0]
return video_url1 if __name__ == '__main__': # 对主页发送请求
response = get_page('https://www.pearvideo.com/') # 对主页进行解析、获取详情页ID
detail_list = main_index(response.text) # 对每个详情页url发送请求
for url in detail_list:
res = get_page(url)
# print(res.text) # 解析详情页获取视频ID
video_url = video_detail(res.text)
print(video_url) # 保存视频
save_data(video_url)

四、今日作业:

今日作业:
爬取豆瓣TOP250部电影信息:
https://movie.douban.com/top250 PS: 提取电影详情页url、图片链接、电影名称、
电影评分、评价人数、导演、主演、电影上映时间、简介

代码:
import requests
import re
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.157 Safari/537.36'}
zhengze = '<div class="item">.*?href="(.*?)">.*?src="(.*?)" .*?<span class="title">(.*?)</span>.*?导演: (.*?)<br>(.*?)&nbsp;.*?<span class="rating_num".*?>(.*?)</span>.*?<span>(.*?)人评价.*?<span class="inq">(.*?)</span>' def get_every_page(url): response = requests.get(url, headers=headers) movie_content = re.findall(zhengze, response.text, re.S) for every_movie in movie_content:
movie_url, movie_jpg, name, director, time, point, num, abstract = every_movie director1 = director.split('&n')[0]
star = director.split('&n')[-1].split('主')[-1].split('演')[-1].split(':')[-1].lstrip() data = '名称:{}, 电影链接:{}, 图片:{}, 导演:{}, 主演:{}, 时间:{}, 得分:{},评论人数:{}, 简介:{}'.format(name, movie_url, movie_jpg, director1, star, time[-4:], point, num, abstract ) with open('douban.txt', 'a', encoding='utf-8') as f:
f.write(data + '\n') if __name__ == '__main__': for i in range(0, 226, 25):
url = f'https://movie.douban.com/top250?start={i}&filter='
get_every_page(url)

展示了部分爬取信息:

名称:肖申克的救赎, 电影链接:https://movie.douban.com/subject/1292052/, 图片:https://img3.doubanio.com/view/photo/s_ratio_poster/public/p480747492.jpg, 导演:弗兰克·德拉邦特 Frank Darabont, 主演:蒂姆·罗宾斯 Tim Robbins /..., 时间:1994, 得分:9.6,评论人数:1450669, 简介:希望让人自由。
名称:霸王别姬, 电影链接:https://movie.douban.com/subject/1291546/, 图片:https://img3.doubanio.com/view/photo/s_ratio_poster/public/p1910813120.jpg, 导演:陈凯歌 Kaige Chen, 主演:张国荣 Leslie Cheung / 张丰毅 Fengyi Zha..., 时间:1993, 得分:9.6,评论人数:1074955, 简介:风华绝代。
名称:这个杀手不太冷, 电影链接:https://movie.douban.com/subject/1295644/, 图片:https://img3.doubanio.com/view/photo/s_ratio_poster/public/p511118051.jpg, 导演:吕克·贝松 Luc Besson, 主演:让·雷诺 Jean Reno / 娜塔莉·波特曼 ..., 时间:1994, 得分:9.4,评论人数:1321273, 简介:怪蜀黍和小萝莉不得不说的故事。
名称:阿甘正传, 电影链接:https://movie.douban.com/subject/1292720/, 图片:https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2559011361.jpg, 导演:罗伯特·泽米吉斯 Robert Zemeckis, 主演:汤姆·汉克斯 Tom Hanks / ..., 时间:1994, 得分:9.4,评论人数:1141443, 简介:一部美国近现代史。
名称:美丽人生, 电影链接:https://movie.douban.com/subject/1292063/, 图片:https://img3.doubanio.com/view/photo/s_ratio_poster/public/p510861873.jpg, 导演:罗伯托·贝尼尼 Roberto Benigni, 主演:罗伯托·贝尼尼 Roberto Beni..., 时间:1997, 得分:9.5,评论人数:669039, 简介:最美的谎言。
名称:泰坦尼克号, 电影链接:https://movie.douban.com/subject/1292722/, 图片:https://img3.doubanio.com/view/photo/s_ratio_poster/public/p457760035.jpg, 导演:詹姆斯·卡梅隆 James Cameron, 主演:莱昂纳多·迪卡普里奥 Leonardo..., 时间:1997, 得分:9.3,评论人数:1082415, 简介:失去的才是永恒的。
名称:千与千寻, 电影链接:https://movie.douban.com/subject/1291561/, 图片:https://img1.doubanio.com/view/photo/s_ratio_poster/public/p2557573348.jpg, 导演:宫崎骏 Hayao Miyazaki, 主演:柊瑠美 Rumi Hîragi / 入野自由 Miy..., 时间:2001, 得分:9.3,评论人数:1068329, 简介:最好的宫崎骏,最好的久石让。
名称:辛德勒的名单, 电影链接:https://movie.douban.com/subject/1295124/, 图片:https://img3.doubanio.com/view/photo/s_ratio_poster/public/p492406163.jpg, 导演:史蒂文·斯皮尔伯格 Steven Spielberg, 主演:连姆·尼森 Liam Neeson..., 时间:1993, 得分:9.5,评论人数:595406, 简介:拯救一个人,就是拯救整个世界。
名称:盗梦空间, 电影链接:https://movie.douban.com/subject/3541415/, 图片:https://img3.doubanio.com/view/photo/s_ratio_poster/public/p513344864.jpg, 导演:克里斯托弗·诺兰 Christopher Nolan, 主演:莱昂纳多·迪卡普里奥 Le..., 时间:2010, 得分:9.3,评论人数:1141373, 简介:诺兰给了我们一场无法盗取的梦。
名称:忠犬八公的故事, 电影链接:https://movie.douban.com/subject/3011091/, 图片:https://img3.doubanio.com/view/photo/s_ratio_poster/public/p524964016.jpg, 导演:莱塞·霍尔斯道姆 Lasse Hallström, 主演:理查·基尔 Richard Ger..., 时间:2009, 得分:9.3,评论人数:756801, 简介:永远都不能忘记你所爱的人。
名称:机器人总动员, 电影链接:https://movie.douban.com/subject/2131459/, 图片:https://img3.doubanio.com/view/photo/s_ratio_poster/public/p1461851991.jpg, 导演:安德鲁·斯坦顿 Andrew Stanton, 主演:本·贝尔特 Ben Burtt / 艾丽..., 时间:2008, 得分:9.3,评论人数:755763, 简介:小瓦力,大人生。
名称:三傻大闹宝莱坞, 电影链接:https://movie.douban.com/subject/3793023/, 图片:https://img3.doubanio.com/view/photo/s_ratio_poster/public/p579729551.jpg, 导演:拉库马·希拉尼 Rajkumar Hirani, 主演:阿米尔·汗 Aamir Khan / 卡..., 时间:2009, 得分:9.2,评论人数:1027409, 简介:英俊版憨豆,高情商版谢耳朵。
名称:海上钢琴师, 电影链接:https://movie.douban.com/subject/1292001/, 图片:https://img1.doubanio.com/view/photo/s_ratio_poster/public/p511146807.jpg, 导演:朱塞佩·托纳多雷 Giuseppe Tornatore, 主演:蒂姆·罗斯 Tim Roth / ..., 时间:1998, 得分:9.2,评论人数:840738, 简介:每个人都要走一条自己坚定了的路,就算是粉身碎骨。
名称:放牛班的春天, 电影链接:https://movie.douban.com/subject/1291549/, 图片:https://img3.doubanio.com/view/photo/s_ratio_poster/public/p1910824951.jpg, 导演:克里斯托夫·巴拉蒂 Christophe Barratier, 主演:热拉尔·朱尼奥 Gé..., 时间:2004, 得分:9.3,评论人数:713263, 简介:天籁一般的童声,是最接近上帝的存在。
名称:楚门的世界, 电影链接:https://movie.douban.com/subject/1292064/, 图片:https://img3.doubanio.com/view/photo/s_ratio_poster/public/p479682972.jpg, 导演:彼得·威尔 Peter Weir, 主演:金·凯瑞 Jim Carrey / 劳拉·琳妮 Lau..., 时间:1998, 得分:9.2,评论人数:790673, 简介:如果再也不能见到你,祝你早安,午安,晚安。
名称:大话西游之大圣娶亲, 电影链接:https://movie.douban.com/subject/1292213/, 图片:https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2455050536.jpg, 导演:刘镇伟 Jeffrey Lau, 主演:周星驰 Stephen Chow / 吴孟达 Man Tat Ng..., 时间:1995, 得分:9.2,评论人数:796336, 简介:一生所爱。
名称:星际穿越, 电影链接:https://movie.douban.com/subject/1889243/, 图片:https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2206088801.jpg, 导演:克里斯托弗·诺兰 Christopher Nolan, 主演:马修·麦康纳 Matthew Mc..., 时间:2014, 得分:9.2,评论人数:817611, 简介:爱是一种力量,让我们超越时空感知它的存在。
名称:龙猫, 电影链接:https://movie.douban.com/subject/1291560/, 图片:https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2540924496.jpg, 导演:宫崎骏 Hayao Miyazaki, 主演:日高法子 Noriko Hidaka / 坂本千夏 Ch..., 时间:1988, 得分:9.2,评论人数:705161, 简介:人人心中都有个龙猫,童年就永远不会消失。
名称:教父, 电影链接:https://movie.douban.com/subject/1291841/, 图片:https://img3.doubanio.com/view/photo/s_ratio_poster/public/p616779645.jpg, 导演:弗朗西斯·福特·科波拉 Francis Ford Coppola, 主演:马龙·白兰度 M..., 时间:1972, 得分:9.3,评论人数:515699, 简介:千万不要记恨你的对手,这样会让你失去理智。
名称:熔炉, 电影链接:https://movie.douban.com/subject/5912992/, 图片:https://img3.doubanio.com/view/photo/s_ratio_poster/public/p1363250216.jpg, 导演:黄东赫 Dong-hyuk Hwang, 主演:孔侑 Yoo Gong / 郑有美 Yu-mi Jeong ..., 时间:2011, 得分:9.3,评论人数:464621, 简介:我们一路奋战不是为了改变世界,而是为了不让世界改变我们。
名称:无间道, 电影链接:https://movie.douban.com/subject/1307914/, 图片:https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2233971046.jpg, 导演:刘伟强 / 麦兆辉, 主演:刘德华 / 梁朝伟 / 黄秋生, 时间:2002, 得分:9.2,评论人数:654897, 简介:香港电影史上永不过时的杰作。
名称:疯狂动物城, 电影链接:https://movie.douban.com/subject/25662329/, 图片:https://img1.doubanio.com/view/photo/s_ratio_poster/public/p2315672647.jpg, 导演:拜伦·霍华德 Byron Howard / 瑞奇·摩尔 Rich Moore, 主演:金妮弗·..., 时间:2016, 得分:9.2,评论人数:903848, 简介:迪士尼给我们营造的乌托邦就是这样,永远善良勇敢,永远出乎意料。

python_day04的更多相关文章

随机推荐

  1. Redis 集群搭建(基于Linux)

    一.基础环境 1.虚拟机 VMware 15.x 2.Linux系统,用的是Centos7的Linux系统 3.Redis数据库版本 5.0.3 二.Redis集群简介 1.背景 Redis在3.0版 ...

  2. 分布式监控CAT服务端的本地部署

    一.CAT简介 CAT(Central Application Tracking),是美团点评基于 Java 开发的一套开源的分布式实时监控系统.美团点评基础架构部希望在基础存储.高性能通信.大规模在 ...

  3. 函数基础(三) 装饰器\闭包 day 12

    目录 昨日回顾 可变长参数 * ** 函数对象 函数嵌套 名称空间和作用域 今日内容 闭包函数 装饰器 语法糖 装饰器模板 迭代器 昨日回顾 可变长参数 * *形参:接受多余的位置实参 *实参(可迭代 ...

  4. 宋宝华:Docker 最初的2小时(Docker从入门到入门)

    本文系转载,著作权归作者所有. 商业转载请联系作者获得授权,非商业转载请注明出处. 作者: 宋宝华 来源: 微信公众号linux阅码场(id: linuxdev) 最初的2小时,你会爱上Docker, ...

  5. day3-02 python入门之基本的数据类型

    目录 一.整型(int) 二.浮点型(float) 三.字符串类型(str) 字符串在python2和python3中的细微区别 四.复数 五.列表(list) 六.数据字典(dict) 定义方式 七 ...

  6. vue cli3.3 以上版本配置vue.config.js

    // vue.config.js 配置说明//官方vue.config.js 参考文档 https://cli.vuejs.org/zh/config/#css-loaderoptions// 这里只 ...

  7. 对于Serializable的理解

    对于Serializable的理解 Last Edited: Apr 04, 2019 2:53 PM Tags: java 开始 序列化:把Java对象转换为字节序列的过程. 反序列化:把字节序列恢 ...

  8. (Java) AES-128 数据加密

    package com.vcgeek.hephaestus.utils; import javax.crypto.Cipher; import javax.crypto.spec.SecretKeyS ...

  9. 【模板】prufer序列

    如何构造一个prufer序列? 我们给一棵无根树的节点编上号,每次找到一个编号最小的度为1节点,删除它,并输出与它连接的点的编号,直到只剩下两个节点. 这样,我们就构造出来了一个prufer序列. 通 ...

  10. 「考试」num (破800纪念)

    是第800题啦. 怎么说,$rvalue$学长写的已经挺好的了,我在这里做一点补充,写一点理解. 但是这道题真的值得写一下题解,毕竟一百行也算是数论工程题了. 定义函数 $Fp(k,n)$为$n$中$ ...