Closed sherlR closed 9 months ago
那个variables后面就是一连串的字典吗?打印出URL来看着怪怪的
因为我这样请求提示“获取信息失败”,response打印出来是空的,cookie也设置的正确的,所以在想是不是URL格式不对?
希望可以得到解答~
异步部分的代码貌似有点问题
嗯...是运行失败的
这是我的运行截图 改成(20,40)也是无法获取信息,我打印出来 headers里是有那五个参数的,请问是我的cookie设置错误了吗 看上去也是该有引号的地方是有的,而且cookie里“auth_token,ct0”这些也是有的
可以问一下您的Python版本吗
我是 Python 3.11 的环境
获取信息失败大概率是cookie错误,如图:
可以直接复制完整cookie填入settings(引号前加反斜杠),或是如 #10 中提到的,仅填写auth_token与ct0
请问3.11这里不会报错吗,编译器跟运行都有报错,加上global也还是错
真的很奇怪 获取信息失败之后我的response是空的
global 的 response 去掉
在75行后插一句print(response)
看看输出
e2)
没有走到那个地方呢就报错,get请求就直接报错了?wow,才发现
像是代理问题,开个新文件,试试下面这段代码:
import httpx
url = 'https://www.youtube.com/'
headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36',
'referer': 'https://www.youtube.com/'
}
response = httpx.get(url, headers=headers)
print(response.text)
print(f'status_code : {response.status_code}')
看看 status_code 是不是200
应该是代理的问题....一样的报错 我第一次遇到这种问题,请问怎么设置呢 麻烦了
这个主要看你用的vpn客户端,看看有没有全局代理选项
或者 vscode 左下角设置 --> 搜索 proxy --> 在代理设置里配置代理服务器 像这种格式的:
http://127.0.0.1:port
具体要看你的vpn代理在哪个端口
嗯?我开了全局代理也不行啊,YouTube这些都可以在浏览器打开,但是代码里就这里直接报错
那不是代码的问题 应该是我电脑的问题了,我用国内的网站的statecode是 200,也不知道什么原理了。
在你的VPN客户端上找到代理端口 然后配置vscode代理设置
或者配置windows全局代理,可以参见这篇内容
请问解决了吗?我也遇到这个问题了
请问解决了吗?我也遇到这个问题了
代理问题吗?
代理问题的话我这边实在没有办法
请问解决了吗?我也遇到这个问题了
代理问题吗?
代理问题的话我这边实在没有办法 谢谢了,想问一下,这几个url变量需要更换么?然后关于cookie,是用
那个文件的呢?
谢谢了,想问一下,这几个url变量需要更换么?然后关于cookie,是用 那个文件的呢?
代码里的url一般不用改,理论可用 cookie中只要含有 authtoken 和 ct0 字段即可 #10
谢谢了,想问一下,这几个url变量需要更换么?然后关于cookie,是用 那个文件的呢?
代码里的url一般不用改,理论可用 cookie中只要含有 authtoken 和 ct0 字段即可 #10 谢谢了,想问一下你的代理是怎么设置的,是用的代理软件吗?我这边换了两个环境也不成功
像是代理问题,开个新文件,试试下面这段代码:
import httpx url = 'https://www.youtube.com/' headers = { 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36', 'referer': 'https://www.youtube.com/' } response = httpx.get(url, headers=headers) print(response.text) print(f'status_code : {response.status_code}')
看看 status_code 是不是200
import httpx
url = 'https://www.youtube.com/'
headers = { 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36', 'referer': 'https://www.youtube.com/' }
proxies = { 'http://': 'http://localhost:port', # 代理1 'https://': 'http://localhost:port', # 代理2 url必须写成http }
with httpx.Client(proxies=proxies) as client: r1 = client.get(url, headers=headers) print(r1)
print(r1.text)
print(f'status_code : {r1.status_code}')
这个测试脚本改进了一下,我运行了一遍可以访问成功status_code是200。您看原代码里可不可以加一段代理设置呢?
import httpx
url = 'https://www.youtube.com/'
headers = { 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36', 'referer': 'https://www.youtube.com/' }
proxies = { 'http://': 'http://localhost:port', # 代理1 'https://': 'http://localhost:port', # 代理2 url必须写成http }
with httpx.Client(proxies=proxies) as client: r1 = client.get(url, headers=headers) print(r1)
print(r1.text) print(f'status_code : {r1.status_code}')
这个测试脚本改进了一下,我运行了一遍可以访问成功status_code是200。您看原代码里可不可以加一段代理设置呢?
已更新
还想问一下,像这种那个重试有次数限制吗
请问如果只想爬最新的信息,应该怎么设置,谢谢了
还想问一下,像这种那个重试有次数限制吗
这个重试一般是网络不好,或者图片太大,导致固定时间内下载未完成,报超时
它会一直尝试下载,直到下载成功或手动结束
请问如果只想爬最新的信息,应该怎么设置,谢谢了
配置一下时间范围就行,[开始时间:结束时间(随便填,大于今天就行)]
请问如果只想爬最新的信息,应该怎么设置,谢谢了
配置一下时间范围就行,[开始时间:结束时间(随便填,大于今天就行)] 感谢