Python:这是一个朴实无华的爬虫教程,就是有点养眼

x33g5p2x  于2021-11-21 转载在 Python  
字(1.5k)|赞(0)|评价(0)|浏览(339)

好难受,上次发了做游戏的居然没人看,每天为了给你们写啥,老夫心都操碎了~

真的是,今天来给大家爬一波短视频网站吧,都是些很养眼的~

网站地址在代码里面,大家用心一下就能看到了。

使用的软件

  1. python 3.8
  2. pycharm 2021.2

模块

  1. requests
  2. parsel
  3. re
  4. concurrent.futures
  5. time
  6. warnings

不会安装模块看这篇:如何安装python模块, python模块安装失败的原因以及解决办法

知道你们不想看那些步骤,我直接上代码吧

  1. import requests
  2. import parsel
  3. import re
  4. import concurrent.futures
  5. import time
  6. import warnings
  7. # 取消警告
  8. warnings.filterwarnings("ignore")
  9. def get_html(url):
  10. """发送请求获取网页源代码"""
  11. html_data = requests.get(url=url, verify=False).text
  12. return html_data
  13. def parse_data_1(html_data):
  14. """第一次解析, 拿到所有的详情页链接"""
  15. selector = parsel.Selector(html_data)
  16. url_list = selector.xpath('//a[@class="meta-title"]/@href').getall()
  17. return url_list
  18. def parse_data_2(html_data):
  19. """第二次解析, 获取视频链接"""
  20. video_url = re.findall('url: "(.*?)",', html_data)[0]
  21. return video_url
  22. def save(video_url):
  23. """保存视频"""
  24. title = video_url.split('/')[-1] # 取链接当中的字段作为标题
  25. video_data = requests.get(video_url, verify=False).content # 发送网络请求
  26. with open(f'video/{title}', mode='wb') as f:
  27. f.write(video_data)
  28. print(title, "爬取成功!!!")
  29. start_time = time.time()
  30. url = 'https://www.520mmtv.com/hd/rewu.html'
  31. # 1. 向目标网站发送请求
  32. html_data = get_html(url=url)
  33. # 2. 第一次解析数据 提取详情页链接
  34. url_list = parse_data_1(html_data=html_data)
  35. for info_url in url_list[:10]:
  36. # 3. 向详情页发送请求
  37. html_data_2 = get_html(url=info_url)
  38. # 4. 第二次解析数据 提取视频播放地址
  39. video_url = parse_data_2(html_data=html_data_2)
  40. # 5. 保存视频
  41. save(video_url=video_url)
  42. print('花费时间:', time.time() - start_time)

相关文章