import requests
import re
from bs4 import BeautifulSoup
url = 'https://www.xxx.com/videos/?page=1'
headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'}
resp=requests.get(url,headers=headers)
v1=BeautifulSoup(resp.text,'lxml')
v2=v1.select('.image_wrapper')
for v3 in v2:
vurl=v3['href'] #已找到视频后缀地址
lst=[]
lst.append('https://www.xxx.com'+vurl) #加前缀
for url3 in lst: #二次请求
resp2=requests.get(url3,headers=headers) #无法导向正确地址
v5 = BeautifulSoup(resp2.text,'lxml')
lst中的地址正确吗?可能是二次请求的 headers的头部信息不全。
要在headers中添加抓包时的请求头参数
比如
headers={
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36',
'Host' : 'xxxxxxxxxxx',
'Origin' : 'xxxxxxxxxxxxx',
'Referer' : 'xxxxxxxxxxxxxx',
'Cookie': 'xxxxxxxxxxxxxxxx'
}
其中请求头的参数 'User-Agent','Host','Origin', 'Referer','Cookie'可以在浏览器的f12控制台的Network中看到
首先你需要检查一下视频网址构造是否正确,其次你需要将下面这段代码放到循环外面。
for url3 in lst: #二次请求
resp2=requests.get(url3,headers=headers)
v5 = BeautifulSoup(resp2.text,'lxml')
无法导向正确地址是指导向了另一个地址还是响应出现错误?可否把错误信息发过来看看?如果没有报错,把get到的错误信息发来看看?