程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

python(0)

标签  

暂无标签

日期归档  

python3爬取梨视频,并下载到本地

发布于2019-09-11 16:57     阅读(768)     评论(0)     点赞(25)     收藏(1)


导入相关库

  1. """
  2. -*- coding:utf-8 -*-
  3. author:Air
  4. datetime:2019/7/26 22:26
  5. software: PyCharm
  6. 学习交流qq群:916696436
  7. """
  8. import requests
  9. import re
  10. import os
  11. import time
  12. from parsel import Selector

分析网页

数据是ajax请求的

 

视频在详情页中

1.获取详情页url

  1. url='https://www.pearvideo.com/popular_loading.jsp'
  2. data={
  3. 'reqType':1,
  4. 'categoryId':59,
  5. 'start':num
  6. }
  7. res=requests.get(url,headers=headers,params=data)
  8. s=Selector(text=res.content.decode())
  9. li_list=['https://www.pearvideo.com/{}'.format(i) for i in s.xpath('//li/a[@class="actplay"]/@href').getall()]

 2.获取视频url和名字

通过正则获取视频url

  1. def get_mp4(url):
  2. res=requests.get(url,headers=headers)
  3. s=Selector(text=res.content.decode())
  4. name=s.xpath('//h1[@class="video-tt"]/text()').get()
  5. pattern=re.compile(r'srcUrl="(.*?)"',re.S)
  6. mp4_url=pattern.findall(res.text)[0]

3.下载视频

  1. def dowm_mp4(name,url):
  2. if not os.path.exists(root):
  3. os.makedirs(root)
  4. res=requests.get(url,headers=headers)
  5. path=root+name+'.mp4'
  6. with open(path,'wb') as f:
  7. f.write(res.content)
  8. print('下载成功')

4.结果(下载了一部)

5.统筹调用

(1)爬取十页

(2)设置休眠时间

  1. def start():
  2. for i in range(10): #爬取十页
  3. urls=get_url(i)
  4. for url in urls:
  5. get_mp4(url)
  6. time.sleep(2)

源码

  1. """
  2. -*- coding:utf-8 -*-
  3. author:Air
  4. datetime:2019/7/26 22:26
  5. software: PyCharm
  6. 学习交流qq群:916696436
  7. """
  8. import requests
  9. import re
  10. import os
  11. import time
  12. from parsel import Selector
  13. root='./mp4/'
  14. from fake_useragent import UserAgent
  15. # 生成对象
  16. useragent = UserAgent()
  17. headers = {
  18. 'User-Agent': useragent.random
  19. }
  20. def get_url(num):
  21. url='https://www.pearvideo.com/popular_loading.jsp'
  22. data={
  23. 'reqType':1,
  24. 'categoryId':59,
  25. 'start':num
  26. }
  27. res=requests.get(url,headers=headers,params=data)
  28. s=Selector(text=res.content.decode())
  29. li_list=['https://www.pearvideo.com/{}'.format(i) for i in s.xpath('//li/a[@class="actplay"]/@href').getall()]
  30. return li_list
  31. def get_mp4(url):
  32. res=requests.get(url,headers=headers)
  33. s=Selector(text=res.content.decode())
  34. name=s.xpath('//h1[@class="video-tt"]/text()').get()
  35. pattern=re.compile(r'srcUrl="(.*?)"',re.S)
  36. mp4_url=pattern.findall(res.text)[0]
  37. print(name)
  38. dowm_mp4(name,mp4_url)
  39. def dowm_mp4(name,url):
  40. if not os.path.exists(root):
  41. os.makedirs(root)
  42. res=requests.get(url,headers=headers)
  43. path=root+name+'.mp4'
  44. with open(path,'wb') as f:
  45. f.write(res.content)
  46. print('下载成功')
  47. def start():
  48. for i in range(10): #爬取十页
  49. urls=get_url(i)
  50. for url in urls:
  51. get_mp4(url)
  52. time.sleep(2)
  53. start()

 



所属网站分类: 技术文章 > 博客

作者:gg

链接:https://www.pythonheidong.com/blog/article/107686/992f9a9c723e6ba450bb/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

25 0
收藏该文
已收藏

评论内容:(最多支持255个字符)