今日内容:

一、爬虫三部曲:

1、发送请求

2.解析数据

3.保存数据

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

  1. mport requests
  2. import re #正则模块
  3. import uuid
  4. #uuid.uuid4(),根据时间戳,生成一段世界上惟一的字符串
  5. #导入线程池模块
  6.  
  7. #爬虫三部曲
  8. #1.发送请求
  9. def get_page(url):
  10. response=requests.get(url)
  11. return response
  12. #2.解析数据
  13. def parse_index(text):
  14. res = re.findall('<a href="video_(.*?)"', text, re.S)
  15. #print(res)
  16. detail_url_list=[]
  17. for m_id in res:
  18. # 拼接详情页url
  19. detail_url = "https://www.pearvideo.com/video_" + m_id
  20. detail_url_list.append(detail_url)
  21. return detail_url_list
  22.  
  23. #4.解析详情页,获取视频url
  24. def parse_detail(text):
  25. movie_url=re.findall('srcUrl="(.*?)"',text,re.S)[0]
  26. return movie_url
  27.  
  28. #3.保存数据
  29. # def save_movie(movie_url):
  30. # response=requests.get(movie_url)
  31. # with open(f'{uuid.uuid4()}.mp4','wb')as f:
  32. # f.write(response.content)
  33. # f.flush()
  34. if __name__ == '__main__':
  35. #main+回车键
  36.  
  37. index_res=get_page(url='https://www.pearvideo.com/')
  38.  
  39. detail_url_list=parse_index(index_res.text)
  40. #print(detail_url_list)
  41.  
  42. for detail_url in detail_url_list:
  43. detail_res=get_page(url=detail_url)
  44. movie_url=parse_detail(detail_res.text)
  45. print(movie_url)
  46.  
  47. # save_movie(movie_url)

二、带参数的爬虫

  1. # '''
  2. # 知乎添加了反爬功能,需要添加参数使用user-agent
  3. # '''
  4. import requests
  5. 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'
  6. }
  7. # #在get请求内添加user-agent
  8. # response=requests.get(url='https://www.zhihu.com/explore',headers=headers)
  9. # with open('zhihu.html','w',encoding='utf-8') as f:
  10. # f.write(response.text)
  11.  
  12. '''
  13. params参数
  14. 访问百度搜查朴灿烈url
  15. '''
  16. from urllib.parse import urlencode
  17. # 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'
  18. url='https://www.baidu.com/s?'+urlencode({'wd':'朴灿烈'})
  19. print(url)
  20. # response=requests.get(url,headers=headers,params={'百度':'安徽工程大学'})
  21. # with open('gongcheng.html','w',encoding='utf-8')as f:
  22. # f.write(response.text)

三、爬取梨视频

  1. '''
  2. 爬取梨视频(下面三条信息从浏览器中查看)
  3.  
  4. Request URL:
  5. https://www.pearvideo.com/
  6.  
  7. Request Method:
  8. GET
  9.  
  10. Request headers:
  11. user-agent: ***********
  12.  
  13. '''
  14.  
  15. import requests
  16. import re # 正则模块
  17. import uuid # uuid.uuid4() 可以根据当前时间戳随机产生成唯一的字符串
  18.  
  19. # 爬虫三部曲
  20.  
  21. # 1. 发送请求
  22. def get_page(index_url):
  23. response1 = requests.get(index_url)
  24. return response1
  25.  
  26. # 2. 解析数据
  27. # 解析主页获取视频页详情ID
  28.  
  29. def main_index(text):
  30.  
  31. # 获取主页视频详情页ID
  32. res1 = re.findall('<a href="video_(.*?)"', text, re.S)
  33.  
  34. detail_list1 = []
  35.  
  36. for m_id in res1:
  37.  
  38. # 拼接详情页url
  39. url1 = 'https://www.pearvideo.com/video_' + m_id
  40. detail_list1.append(url1)
  41.  
  42. return detail_list1
  43.  
  44. # 3. 保存数据
  45. def save_data(v_url):
  46. response2 = requests.get(v_url)
  47.  
  48. with open('{}.mp4'.format(uuid.uuid4()), 'wb') as f:
  49. f.write(response2.content)
  50. f.flush()
  51.  
  52. # 解析详情页获取视频url
  53. def video_detail(text):
  54.  
  55. '''
  56.  
  57. (.*?) : 提取括号的内容
  58. .*? : 直接匹配
  59. <video.*?src="(.*?)"
  60.  
  61. srcUrl="(.*?)"
  62. '''
  63.  
  64. video_url1 = re.findall('srcUrl="(.*?)"', text, re.S)[0]
  65. return video_url1
  66.  
  67. if __name__ == '__main__':
  68.  
  69. # 对主页发送请求
  70. response = get_page('https://www.pearvideo.com/')
  71.  
  72. # 对主页进行解析、获取详情页ID
  73. detail_list = main_index(response.text)
  74.  
  75. # 对每个详情页url发送请求
  76. for url in detail_list:
  77. res = get_page(url)
  78. # print(res.text)
  79.  
  80. # 解析详情页获取视频ID
  81. video_url = video_detail(res.text)
  82. print(video_url)
  83.  
  84. # 保存视频
  85. save_data(video_url)

四、今日作业:

  1. 今日作业:
  2. 爬取豆瓣TOP250部电影信息:
  3. https://movie.douban.com/top250
  4. PS: 提取电影详情页url、图片链接、电影名称、
  5. 电影评分、评价人数、导演、主演、电影上映时间、简介
    代码:
  1. import requests
  2. import re
  3. 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'}
  4. zhengze = '<div class="item">.*?href="(.*?)">.*?src="(.*?)" .*?<span class="title">(.*?)</span>.*?导演: (.*?)<br>(.*?)&nbsp;.*?<span class="rating_num".*?>(.*?)</span>.*?<span>(.*?)人评价.*?<span class="inq">(.*?)</span>'
  5.  
  6. def get_every_page(url):
  7.  
  8. response = requests.get(url, headers=headers)
  9.  
  10. movie_content = re.findall(zhengze, response.text, re.S)
  11.  
  12. for every_movie in movie_content:
  13. movie_url, movie_jpg, name, director, time, point, num, abstract = every_movie
  14.  
  15. director1 = director.split('&n')[0]
  16. star = director.split('&n')[-1].split('主')[-1].split('演')[-1].split(':')[-1].lstrip()
  17.  
  18. data = '名称:{}, 电影链接:{}, 图片:{}, 导演:{}, 主演:{}, 时间:{}, 得分:{},评论人数:{}, 简介:{}'.format(name, movie_url, movie_jpg, director1, star, time[-4:], point, num, abstract )
  19.  
  20. with open('douban.txt', 'a', encoding='utf-8') as f:
  21. f.write(data + '\n')
  22.  
  23. if __name__ == '__main__':
  24.  
  25. for i in range(0, 226, 25):
  26. url = f'https://movie.douban.com/top250?start={i}&filter='
  27. get_every_page(url)

展示了部分爬取信息:

  1. 名称:肖申克的救赎, 电影链接: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, 简介:希望让人自由。
  2. 名称:霸王别姬, 电影链接: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, 简介:风华绝代。
  3. 名称:这个杀手不太冷, 电影链接: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, 简介:怪蜀黍和小萝莉不得不说的故事。
  4. 名称:阿甘正传, 电影链接: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, 简介:一部美国近现代史。
  5. 名称:美丽人生, 电影链接: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, 简介:最美的谎言。
  6. 名称:泰坦尼克号, 电影链接: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, 简介:失去的才是永恒的。
  7. 名称:千与千寻, 电影链接: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, 简介:最好的宫崎骏,最好的久石让。
  8. 名称:辛德勒的名单, 电影链接: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, 简介:拯救一个人,就是拯救整个世界。
  9. 名称:盗梦空间, 电影链接: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, 简介:诺兰给了我们一场无法盗取的梦。
  10. 名称:忠犬八公的故事, 电影链接: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, 简介:永远都不能忘记你所爱的人。
  11. 名称:机器人总动员, 电影链接: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, 简介:小瓦力,大人生。
  12. 名称:三傻大闹宝莱坞, 电影链接: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, 简介:英俊版憨豆,高情商版谢耳朵。
  13. 名称:海上钢琴师, 电影链接: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, 简介:每个人都要走一条自己坚定了的路,就算是粉身碎骨。
  14. 名称:放牛班的春天, 电影链接: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, 简介:天籁一般的童声,是最接近上帝的存在。
  15. 名称:楚门的世界, 电影链接: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, 简介:如果再也不能见到你,祝你早安,午安,晚安。
  16. 名称:大话西游之大圣娶亲, 电影链接: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, 简介:一生所爱。
  17. 名称:星际穿越, 电影链接: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, 简介:爱是一种力量,让我们超越时空感知它的存在。
  18. 名称:龙猫, 电影链接: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, 简介:人人心中都有个龙猫,童年就永远不会消失。
  19. 名称:教父, 电影链接: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, 简介:千万不要记恨你的对手,这样会让你失去理智。
  20. 名称:熔炉, 电影链接: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, 简介:我们一路奋战不是为了改变世界,而是为了不让世界改变我们。
  21. 名称:无间道, 电影链接:https://movie.douban.com/subject/1307914/, 图片:https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2233971046.jpg, 导演:刘伟强 / 麦兆辉, 主演:刘德华 / 梁朝伟 / 黄秋生, 时间:2002, 得分:9.2,评论人数:654897, 简介:香港电影史上永不过时的杰作。
  22. 名称:疯狂动物城, 电影链接: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. [AHOI2002]网络传输

    这道题根据题意,易知k的幂与p的二进制形式有关系,然后再一波高精度即可.(这里我用$n.k$代替了$k.p$) #include <iostream> #include <cstdi ...

  2. 百万年薪python之路 -- 面向对象之三大特性

    1.面向对象之三大特性 1.1封装 封装:就是把一堆代码和数据,放在一个空间,并且可以使用 对于面向对象的封装来说,其实就是使用构造方法将内容封装到 对象 中,然后通过对象直接或者self间接获取被封 ...

  3. C# leetcode 之 096 不同的二叉搜索树

    C# leetcode 之 096 不同的二叉搜索树 题目描述 给定一个整数 n,求以 1 ... n 为节点组成的二叉搜索树有多少种? 二叉搜索树定义 左子树上所有节点的值小于根节点, 右子树上左右 ...

  4. 设计模式C++描述----10.装饰(Decorator)模式

    一. 举例 我之前做过一个文件系统就叫 MyFileSys 吧,后来的话,客户想加入一些附加功能,比如压缩.加密.杀毒之类的操作,这些附加操作没有先后顺序,比如你可以先压缩再加密,也可以先杀毒再压缩, ...

  5. linux 编译引用动态库时,报GLIBC_2,14 not found的处理方法

    这种错误一般是其引用的libc.so,其中含有版本较高的函数导致. 查看及解决办法: objdump -p ./libdmapi.so 显示: version References: ... requ ...

  6. Linux中vi命令的详细总结

    vi命令的使用 首先可以新建一个文件夹 touch 1.txt  之后通过vi命令进入其中  vi 1.txt 进入其中开始编辑,按下a键可以进行输入. 随便输入一些东西(暂时不支持中文) 非输入模式 ...

  7. 【暂时停更】Gungame更新下载平台

    v1.0: 这是本游戏的第一个版本, 制作于2019.4.12. 控制 : Player1: wsad为移动, r键开炮(有朝向限制) Player2: ikjl为移动, p键开炮(有朝向限制) 下载 ...

  8. [考试反思]0809NOIP模拟测试15:解剖

    说在前面: 不建议阅读.这里没有考试经验,只有一大堆负面情绪. 看了你不会有什么收获.看完了就不要怪我影响了你的心情. 以后不粘排行榜了.没什么意思没什么用. 但是我的意思并不是因为这次没考好的一时兴 ...

  9. NOIP模拟30B 活该

    T1:没有判-1 T2:推出柿子之后手摸错了!,只交了一个表 T3....... 完戏!,就是活该!

  10. 机器学习环境搭建安装TensorFlow1.13.1+Anaconda3.5.3+Python3.7.1+Win10

    安装Python3.7.1 此处不再赘述安装过程,作为记录 安装Anaconda3.5.3 Anaconda3-5.3.0-Windows-x86_64.exe 方案1. 可以直接从官网https:/ ...