YIRANNA 发表于 2020-11-18 20:19:33

在看课程的时候关于代理的一些问题

代码完全照抄但是用不了,用的是python3.7 spyder
import urllib.request
url='http://www.whatismyip.com'
proxy_support=urllib.request.ProxyHandler({'http:':'171.11.178.10:9999'})
opener=urllib.request.build_opener(proxy_support)
opener=addheaders=[('User-Agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.193 Safari/537.36')]
urllib.request.install_opener(opener)
response=urllib.request.urlopen(url)
html=response.read().decode('utf-8')
print(html)
求一个解决方法

Twilight6 发表于 2020-11-18 20:29:02


你代码第五行错了,应该是 opener.addheaders 你写成了 opener=addheaders=[(........)]

YIRANNA 发表于 2020-11-18 20:31:21

Twilight6 发表于 2020-11-18 20:29
你代码第五行错了,应该是 opener.addheaders 你写成了 opener=addheaders=[(........)]

改了之后又是其他错误
raise HTTPError(req.full_url, code, msg, hdrs, fp)

HTTPError: Forbidden
是ip问题吗?

Twilight6 发表于 2020-11-18 20:34:28

YIRANNA 发表于 2020-11-18 20:31
改了之后又是其他错误

是ip问题吗?



网址的问题,几年过去了,网址早就不是之前的网站了

YIRANNA 发表于 2020-11-18 20:36:21

Twilight6 发表于 2020-11-18 20:34
网址的问题,几年过去了,网址早就不是之前的网站了

那应该改成什么呢

Twilight6 发表于 2020-11-18 20:40:19

YIRANNA 发表于 2020-11-18 20:36
那应该改成什么呢


这个试试看,源码的 "origin" 属性就是 IP 地址,甲鱼哥视频的IP 地址早就已经失效了

https://httpbin.org/get

YIRANNA 发表于 2020-11-18 20:51:14

Twilight6 发表于 2020-11-18 20:40
这个试试看,源码的 "origin" 属性就是 IP 地址,甲鱼哥视频的IP 地址早就已经失效了

https://httpb ...

那为什么改掉的ip依然不是我设置的代理IP呢

Twilight6 发表于 2020-11-18 21:11:08

YIRANNA 发表于 2020-11-18 20:51
那为什么改掉的ip依然不是我设置的代理IP呢



代码中 IP 地址 http 冒号应该去掉一个,url 的 https 时候要用 https 协议的 IP ,http 时候用 http 协议的IP

import urllib.request
url='http://httpbin.org/get'# 这里是 http 协议的,需要用 http 协议的 IP
proxy_support= urllib.request.ProxyHandler({'http':'122.147.141.151:80'})# IP 去找个可以用的 http 协议的即可,这个应该可行刚刚瞎找的
opener=urllib.request.build_opener(proxy_support)
opener.addheaders=[('User-Agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.193 Safari/537.36')]
urllib.request.install_opener(opener)
response=urllib.request.urlopen(url)
html=response.read().decode('utf-8')
print(html)

YIRANNA 发表于 2020-11-18 21:27:12

Twilight6 发表于 2020-11-18 21:11
代码中 IP 地址 http 冒号应该去掉一个,url 的 https 时候要用 https 协议的 IP ,http 时候用 ht ...

是不是输出结果有两个ip地址就是正确的?
runfile('C:/Users/Administrator/Desktop/baigei.py', wdir='C:/Users/Administrator/Desktop')
{
"args": {},
"headers": {
    "Accept-Encoding": "identity",
    "Host": "httpbin.org",
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.193 Safari/537.36",
    "X-Amzn-Trace-Id": "Root=1-5fb52104-74840a947235b8c50d195d42"
},
"origin": "118.249.51.98, 122.147.141.151",
"url": "http://httpbin.org/get"
}

Twilight6 发表于 2020-11-18 21:29:50

YIRANNA 发表于 2020-11-18 21:27
是不是输出结果有两个ip地址就是正确的?



嗯,第二个就是代理的IP 吧,可能是代理不是高匿的,是透明的,导致有两个IP ,第一个应该是你的实际IP

YIRANNA 发表于 2020-11-18 22:19:25

Twilight6 发表于 2020-11-18 21:29
嗯,第二个就是代理的IP 吧,可能是代理不是高匿的,是透明的,导致有两个IP ,第一个应该是你的实际 ...

ok
感谢
页: [1]
查看完整版本: 在看课程的时候关于代理的一些问题