鱼C论坛

 找回密码
 立即注册
查看: 2183|回复: 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 编辑

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

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


url = 'htt(删去)ps://w(括号)ww.pearvideo.c(内容)om/'  # 梨视频首页
resp = requests.get(url)
html = etree.HTML(resp.text)
hrefs = html.xpath('//*[@id="vervideoTlist"]//a/@href')  # 获取首页视频列表的子链接
for href in hrefs:
    if check_video(href):  # 检测连接是否为广告
        cont_id = href.split('_')[1]
        child_url = url + href  # 拼接子链接
        # child_resp = requests.get(url=child_url)
        # child_html = etree.HTML(child_resp.text)
        # title = child_html.xpath('//title/text()')[0].split('_')[0]  # 获取视频标题
        headers = {
            'Referer': child_url  # 防盗链
        }
        videoAPI = f'http(删去)s://ww(括号)w.pearvideo.co(内容)m/videoStatus.jsp?contId={cont_id}&mrd=0.13729588533471238'
        # print(requests.get(url=videoAPI, headers=headers).json())
        dic = requests.get(url=videoAPI, headers=headers).json()
        systemTime = dic['systemTime']  # 获取时间戳
        srcUrl = dic['videoInfo']['videos']['srcUrl']  # 获取视频地址
        srcUrl = srcUrl.replace(systemTime, f'cont-{cont_id}')  # 将时间戳替换为cont_id,得到真正的视频地址
        video_resp = requests.get(srcUrl)
        with open(f'video/{cont_id}.mp4', 'wb') as f:
            f.write(video_resp.content)
        print(f'视频{cont_id}下载成功')
        video_resp.close()
resp.close()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-3-30 17:20:03 | 显示全部楼层
浏览器开发者工具的network
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-30 17:20:37 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

回帖奖励 +20 鱼币

再来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

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

使用道具 举报

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

可以用代码自动获取
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-31 00:13:15 | 显示全部楼层
鱼币
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-3-31 00:14:28 | 显示全部楼层
帮顶
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-3-31 00:15:15 | 显示全部楼层
再来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

回帖奖励 +20 鱼币

还不中,呜呜呜
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-31 08:01:41 | 显示全部楼层
那就让我试试吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-31 08:01:59 | 显示全部楼层
服了啊,快点给我中
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-31 08:02:57 | 显示全部楼层
你这个东西对我来说无能为力
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-31 08:03:52 | 显示全部楼层
我就是想要这二十鱼币而已
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

回帖奖励 +20 鱼币

球球了别搞我啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

可以具体说说代码怎么写嘛?感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

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


url = 'htt(删去)ps://w(括号)ww.pearvideo.c(内容)om/'  # 梨视频首页
resp = requests.get(url)
html = etree.HTML(resp.text)
hrefs = html.xpath('//*[@id="vervideoTlist"]//a/@href')  # 获取首页视频列表的子链接
for href in hrefs:
    if check_video(href):  # 检测连接是否为广告
        cont_id = href.split('_')[1]
        child_url = url + href  # 拼接子链接
        # child_resp = requests.get(url=child_url)
        # child_html = etree.HTML(child_resp.text)
        # title = child_html.xpath('//title/text()')[0].split('_')[0]  # 获取视频标题
        headers = {
            'Referer': child_url  # 防盗链
        }
        videoAPI = f'http(删去)s://ww(括号)w.pearvideo.co(内容)m/videoStatus.jsp?contId={cont_id}&mrd=0.13729588533471238'
        # print(requests.get(url=videoAPI, headers=headers).json())
        dic = requests.get(url=videoAPI, headers=headers).json()
        systemTime = dic['systemTime']  # 获取时间戳
        srcUrl = dic['videoInfo']['videos']['srcUrl']  # 获取视频地址
        srcUrl = srcUrl.replace(systemTime, f'cont-{cont_id}')  # 将时间戳替换为cont_id,得到真正的视频地址
        video_resp = requests.get(srcUrl)
        with open(f'video/{cont_id}.mp4', 'wb') as f:
            f.write(video_resp.content)
        print(f'视频{cont_id}下载成功')
        video_resp.close()
resp.close()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

谢谢你!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-24 01:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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