鱼C论坛

 找回密码
 立即注册
查看: 2099|回复: 2

爬虫问题求助

[复制链接]
发表于 2021-10-7 19:35:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. import requests
  2. from lxml import etree

  3. url = "https://www.pearvideo.com/category_4"
  4. headers= {
  5.     "User-Agent": "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Mobile Safari/537.36"
  6. }

  7. response = requests.get(url=url, headers=headers)
  8. html_text = response.text
  9. tree = etree.HTML(html_text)
  10. li_list = tree.xpath('//div[@id="listvideoList"]/ul/li')

  11. for li in li_list:
  12.     detal_url = 'https://www.pearvideo.com/' + li.xpath('./div/a/@href')[0]
  13.     name = li.xpath('./div/a/div[2]/text()')[0] + '.mp4'
  14.     detal_response = requests.get(url=detal_url, headers=headers).text
  15.    
复制代码
以上是爬取梨视频的代码,视频网页的地址是找到了,可是要找下载视频的地址没找到,网页源代码也没有请教下,没有的话这时候该如何进行思考分析,该怎么找地址,给点思路代码指引下,谢谢了!



小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-10-7 20:37:27 | 显示全部楼层
本帖最后由 suchocolate 于 2021-10-7 20:57 编辑
  1. import requests
  2. from lxml import etree
  3. import random
  4. import json


  5. def main():
  6.     result = []  # 存储视频链接
  7.     url = 'https://www.pearvideo.com/category_4'  # 总入口
  8.     base_url = 'https://www.pearvideo.com/'   # 用于合成url和referer
  9.     headers = {'user-agent': 'firefox'}
  10.     r = requests.get(url, headers=headers)
  11.     html = etree.HTML(r.text)
  12.     v_pages = html.xpath('//a[contains(@class,"vervideo-lilink")]/@href')   # 获得各视频的页面的url
  13.     for v_page in v_pages:  # 遍历各视频页面的url,从url中获取视频编号
  14.         # example: v_page like video_1743082
  15.         num = v_page.split('_')[1]   # 视频编号,用于合成视频信息url,视频信息url浏览器f12-网络就能看到,如下:
  16.         # example: https://www.pearvideo.com/videoStatus.jsp?contId=1743082&mrd=0.554376234182324
  17.         url = f'{base_url}videoStatus.jsp?contId={num}&mrd={random.random()}'
  18.         # example: Referer: https://www.pearvideo.com/video_1743082
  19.         headers['Referer'] = f'{base_url}{v_page}'  # 想要获得视频信息,需要在头中添加referer
  20.         r = requests.get(url, headers=headers)
  21.         data = json.loads(r.text)  # 视频信息是以json形式反馈的
  22.         # print(data['videoInfo']['videos']['srcUrl'])
  23.         result.append(data['videoInfo']['videos']['srcUrl'])   # 把视频连接放到结果列表中
  24.     print(result)


  25. if __name__ == '__main__':
  26.     main()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-10-8 17:17:04 | 显示全部楼层

谢谢大佬指导,json 这块我还没学明白,我先去学习下。谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-17 09:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表