鱼C论坛

 找回密码
 立即注册
查看: 2806|回复: 17

[已解决]python爬虫相关

[复制链接]
发表于 2023-3-30 16:29:35 | 显示全部楼层 |阅读模式

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

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

x
想求助一下各位大佬,如果我想获取前端general 信息里的requests url的话,该怎么获取呢?就是这个Request URL: https://www.pearvideo.com/videoS ... 0.30040799851445077。或者我有没有其他办法获取到Query String Parameters 里的信息,我把它拼成上述的URL?
最佳答案
2023-4-1 02:25:40
本帖最后由 昭昭天命amg 于 2023-4-1 02:27 编辑

这是我去年跟着教程敲的代码,看对你有没有帮助吧
  1. import requests
  2. import re
  3. from lxml import etree

  4. # 检测连接是否为广告
  5. def check_video(string):
  6.     patt = re.compile(r'^video')
  7.     if patt.match(string) is not None:
  8.         return True
  9.     else:
  10.         return False


  11. url = 'htt(删去)ps://w(括号)ww.pearvideo.c(内容)om/'  # 梨视频首页
  12. resp = requests.get(url)
  13. html = etree.HTML(resp.text)
  14. hrefs = html.xpath('//*[@id="vervideoTlist"]//a/@href')  # 获取首页视频列表的子链接
  15. for href in hrefs:
  16.     if check_video(href):  # 检测连接是否为广告
  17.         cont_id = href.split('_')[1]
  18.         child_url = url + href  # 拼接子链接
  19.         # child_resp = requests.get(url=child_url)
  20.         # child_html = etree.HTML(child_resp.text)
  21.         # title = child_html.xpath('//title/text()')[0].split('_')[0]  # 获取视频标题
  22.         headers = {
  23.             'Referer': child_url  # 防盗链
  24.         }
  25.         videoAPI = f'http(删去)s://ww(括号)w.pearvideo.co(内容)m/videoStatus.jsp?contId={cont_id}&mrd=0.13729588533471238'
  26.         # print(requests.get(url=videoAPI, headers=headers).json())
  27.         dic = requests.get(url=videoAPI, headers=headers).json()
  28.         systemTime = dic['systemTime']  # 获取时间戳
  29.         srcUrl = dic['videoInfo']['videos']['srcUrl']  # 获取视频地址
  30.         srcUrl = srcUrl.replace(systemTime, f'cont-{cont_id}')  # 将时间戳替换为cont_id,得到真正的视频地址
  31.         video_resp = requests.get(srcUrl)
  32.         with open(f'video/{cont_id}.mp4', 'wb') as f:
  33.             f.write(video_resp.content)
  34.         print(f'视频{cont_id}下载成功')
  35.         video_resp.close()
  36. resp.close()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-3-30 17:20:03 | 显示全部楼层
浏览器开发者工具的network
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-30 17:20:37 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-3-30 17:39:15 | 显示全部楼层

回帖奖励 +20 鱼币

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

使用道具 举报

 楼主| 发表于 2023-3-30 19:51:31 | 显示全部楼层
isdkz 发表于 2023-3-30 17:20
浏览器开发者工具的network

可以用代码自动获取吗?我想要批量得爬取视频并下载下来,我不能一个个的去复制吧,那和我自己手动下载视频也没区别我甚至还要写段小代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-30 20:19:40 | 显示全部楼层
是肥宅SRP啊 发表于 2023-3-30 19:51
可以用代码自动获取吗?我想要批量得爬取视频并下载下来,我不能一个个的去复制吧,那和我自己手动下载视 ...

可以用代码自动获取
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-31 00:13:15 | 显示全部楼层
鱼币
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-3-31 00:14:28 | 显示全部楼层
帮顶
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-3-31 00:15:15 | 显示全部楼层
再来
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-3-31 00:15:58 | 显示全部楼层

回帖奖励 +20 鱼币

还不中,呜呜呜
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-31 08:01:41 | 显示全部楼层
那就让我试试吧
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-31 08:01:59 | 显示全部楼层
服了啊,快点给我中
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-31 08:02:57 | 显示全部楼层
你这个东西对我来说无能为力
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-31 08:03:52 | 显示全部楼层
我就是想要这二十鱼币而已
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-31 08:04:10 | 显示全部楼层

回帖奖励 +20 鱼币

球球了别搞我啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-3-31 20:52:45 | 显示全部楼层
isdkz 发表于 2023-3-30 20:19
可以用代码自动获取

可以具体说说代码怎么写嘛?感谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-1 02:25:40 | 显示全部楼层    本楼为最佳答案   
本帖最后由 昭昭天命amg 于 2023-4-1 02:27 编辑

这是我去年跟着教程敲的代码,看对你有没有帮助吧
  1. import requests
  2. import re
  3. from lxml import etree

  4. # 检测连接是否为广告
  5. def check_video(string):
  6.     patt = re.compile(r'^video')
  7.     if patt.match(string) is not None:
  8.         return True
  9.     else:
  10.         return False


  11. url = 'htt(删去)ps://w(括号)ww.pearvideo.c(内容)om/'  # 梨视频首页
  12. resp = requests.get(url)
  13. html = etree.HTML(resp.text)
  14. hrefs = html.xpath('//*[@id="vervideoTlist"]//a/@href')  # 获取首页视频列表的子链接
  15. for href in hrefs:
  16.     if check_video(href):  # 检测连接是否为广告
  17.         cont_id = href.split('_')[1]
  18.         child_url = url + href  # 拼接子链接
  19.         # child_resp = requests.get(url=child_url)
  20.         # child_html = etree.HTML(child_resp.text)
  21.         # title = child_html.xpath('//title/text()')[0].split('_')[0]  # 获取视频标题
  22.         headers = {
  23.             'Referer': child_url  # 防盗链
  24.         }
  25.         videoAPI = f'http(删去)s://ww(括号)w.pearvideo.co(内容)m/videoStatus.jsp?contId={cont_id}&mrd=0.13729588533471238'
  26.         # print(requests.get(url=videoAPI, headers=headers).json())
  27.         dic = requests.get(url=videoAPI, headers=headers).json()
  28.         systemTime = dic['systemTime']  # 获取时间戳
  29.         srcUrl = dic['videoInfo']['videos']['srcUrl']  # 获取视频地址
  30.         srcUrl = srcUrl.replace(systemTime, f'cont-{cont_id}')  # 将时间戳替换为cont_id,得到真正的视频地址
  31.         video_resp = requests.get(srcUrl)
  32.         with open(f'video/{cont_id}.mp4', 'wb') as f:
  33.             f.write(video_resp.content)
  34.         print(f'视频{cont_id}下载成功')
  35.         video_resp.close()
  36. resp.close()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-4-1 10:57:26 | 显示全部楼层
昭昭天命amg 发表于 2023-4-1 02:25
这是我去年跟着教程敲的代码,看对你有没有帮助吧

谢谢你!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-25 18:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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