本帖最后由 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('云南虫')))
上面的代码是 为了 定位播放页面
运行之后 显示如下界面
然后 我继续 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也可以看到 这个地址
然而 我用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)
返回的 报文里 却没有真实的播放地址
通过与浏览器的对比
这与段 在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(搜索内容))
|