吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3479|回复: 15
收起左侧

[求助] python request.get 返回数据中body 不全,而浏览器的F12可以看到,求大神指点

  [复制链接]
rong1667 发表于 2021-9-1 14:54
本帖最后由 rong1667 于 2021-9-1 22:07 编辑

我是一个爬虫小白,研究了半天 实在是没办法了,特来求助各位大神帮帮忙解答一下。

爬取的网站是一个影视网站  http://xunjuba.com//tv/67680/7.html  (这是云南虫谷的第7集)

[Python] 纯文本查看 复制代码
import requests,chardet
from bs4 import BeautifulSoup

headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36'}

#搜索影视关键字
def sousuo(guanjianzi):
    url = f'http://119.29.15.48:12334/ssszz.php?top=10&q=%s'%guanjianzi
    res = requests.get(url)
    res.encoding = 'utf-8'
    # bs = BeautifulSoup(res.text, 'html.parser')
    str_to_dict = eval(res.text[6:-1])
    for i in range(len(str_to_dict)):
        print(i,'==',str_to_dict[i]['title'])

    sum_1=int(input('输入影视序号:'))
    # sum_1 = 0
    return str_to_dict[sum_1]['url']


def xuanze(dizhi):
    url = f'http://xunjuba.com/%s'%dizhi
    res = requests.get(url,headers = headers)
    res.encoding = 'utf-8'
    bs = BeautifulSoup(res.text, 'html.parser')
    bs1 = bs.find('ul',class_="urlli")
    bs2 = bs1.find_all('a')
    for i in range(len(bs2)):
        url_1 = f'%s%s.html'%(url,i+1)
        print(url_1)
    return url_1

print(xuanze(sousuo('云南虫')))


上面的代码是 为了 定位播放页面
运行之后 显示如下界面
image.png

然后 我继续 get 上面的网址  例如 第七集  http://xunjuba.com//tv/67680/7.html

为了找到真实的播放地址  例如 https://sf1-ttcdn-tos.pstatp.com/obj/tos-cn-v-0015c002/2dbd46101ec0428ba1abdb13eae8ad52  

这个播放地址 是在浏览器中 打开  http://xunjuba.com//tv/67680/7.html  这个界面后 在视频框中 右键 复制的播放地址  

当然 在浏览器中 F12也可以看到 这个地址
image.png

然而 我用python 3.6.5 版本 requests.get('http://xunjuba.com//tv/67680/7.html') 之后

[Python] 纯文本查看 复制代码
url = 'http://xunjuba.com//tv/67680/7.html'
res = requests.get(url,headers=headers)
res.encoding = 'utf-8'
print(res.text)


返回的 报文里 却没有真实的播放地址
通过与浏览器的对比
image.png
这与段 在python 返回报文中 根本没有显示
尝试了很多办法 都没有解决 求大佬指点一下  谢谢谢谢谢谢谢谢 孩子在这里谢谢各位大佬了
——————————————————————————————————
感谢各位大神帮忙解惑  完善后的代码在这里
[Python] 纯文本查看 复制代码
from urlextract import URLExtract
import requests,chardet,re
from bs4 import BeautifulSoup

headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36'}

#影视
def sousuo(guanjianzi):
    url = f'http://119.29.15.48:12334/ssszz.php?top=10&q=%s'%guanjianzi
    res = requests.get(url)
    res.encoding = 'utf-8'
    # bs = BeautifulSoup(res.text, 'html.parser')
    str_to_dict = eval(res.text[6:-1])
    for i in range(len(str_to_dict)):
        print(i,'==',str_to_dict[i]['title'])

    sum_1=int(input('输入影视序号:'))
    # sum_1 = 0
    #定位ID
    sum_2 = re.findall(r"\d+\.?\d*",str_to_dict[sum_1]['url'])
    #接口定位
    url_2 = r'http://d.gqyy8.com:8077/ne2/s%s.js'%''.join(sum_2)
    res = requests.get(url_2)
    extractor = URLExtract()
    urls = extractor.find_urls(res.text)

    a = {}
    for i in urls:

        key = i.split(',')[2]
        values = i.split(',')[0]

        if values[0:10] == 'https://sf':
            a[key]=values
    return a


if __name__ == "__main__":
    搜索内容 = input('输入影视关键字:')
    print(sousuo(搜索内容))

免费评分

参与人数 3吾爱币 +3 热心值 +2 收起 理由
yu100 + 1 + 1 用心讨论,共获提升!
sutramusic + 1 + 1 鼓励转贴优秀软件安全工具和文档!
xzl9552547 + 1 热心回复!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

无阻 发表于 2021-9-1 15:06
有可能这个播放地址是JavaScript计算得出的
Wxylkxy 发表于 2021-9-1 15:06
你看看是不是懒加载。虽说可见即可得 但是你能看见的跟requests看见的可不一定一样喔。
平淡最真 发表于 2021-9-1 15:12
去这里找的到的才能get到  view-source:http://xunjuba.com//tv/67680/7.html
这里没有说明是js加载的吧
tanghengvip 发表于 2021-9-1 15:14
你在元素审核里看到的东西 是页面最终的结果,并不一定是但个页面请求一次性返回给你的,你要参考F12实现爬虫,应该主要参考Network那一栏的请求,不要搞错方向了。
所以requests没有问题,是你找错接口地址了。
QQ截图20210901151106.png

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
rong1667 + 1 + 1 谢谢@Thanks!

查看全部评分

平淡最真 发表于 2021-9-1 15:18
平淡最真 发表于 2021-9-1 15:12
去这里找的到的才能get到  view-source:http://xunjuba.com//tv/67680/7.html
这里没有说明是js加载的吧


确实是
 楼主| rong1667 发表于 2021-9-1 15:18
平淡最真 发表于 2021-9-1 15:12
去这里找的到的才能get到  view-source:http://xunjuba.com//tv/67680/7.html
这里没有说明是js加载的吧

view-source:http://xunjuba.com//tv/67680/7.html

这个界面确实没看到真实的播放地址。 但是看到很多.js 结尾的 url  

尤其第二行就是 .JS  这应该是 JS加载的吧
byyulei 发表于 2021-9-1 15:20
你要的在这里
微信图片_20210901151947.png
 楼主| rong1667 发表于 2021-9-1 15:21
Wxylkxy 发表于 2021-9-1 15:06
你看看是不是懒加载。虽说可见即可得 但是你能看见的跟requests看见的可不一定一样喔。

懒加载 好像就要 用到selenium 模拟浏览器点击
这个待会试一下
 楼主| rong1667 发表于 2021-9-1 15:22
无阻 发表于 2021-9-1 15:06
有可能这个播放地址是JavaScript计算得出的

JavaScript  这个太深奥了 我待会百度一下咋搞 谢谢大佬
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 22:56

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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