Python中urllib绕过系统代理/使用其他代理的方式
本文最后更新于 411 天前,其中的信息可能已经有所发展或是发生改变。

告诉大家一个秘密,urllib库在Python3.X中会走系统的代理设置,很爽吧,不用自己设置呢!

然并卵,然而他并不能识别我的SS,于是蜘蛛并不能出墙啊。

看了看网上并没有相关的介绍,记得官方的源介绍也并没有说太多,于是自己动手看函数返回值

发现在构造request头部的时候可以加入ProxyHandler(),方式如下:

通过使用urllib.request.ProxyHandler()方式构造代理设置,向内部可以传入一个字典,写明ftp,http,https的代理设置

有了这个就好办了(详细看注释):

# 绕过系统代理:
proxy_handler = request.ProxyHandler({})
oper = request.build_opener(proxy_handler)
# 当然oper头中还可以接入其他的信息,例如cookie处理等等,请君自行搜索
# 检测某些其他代理:
import winreg
def check_proxy():
# Author : [email protected]
    key = winreg.OpenKey(winreg.HKEY_CURRENT_USER,
        r'Software\Microsoft\Windows\CurrentVersion\Internet Settings',
        0, winreg.KEY_ALL_ACCESS)
    try:
        if winreg.QueryValueEx(key,"AutoConfigURL")[1]:
            proxy = winreg.QueryValueEx(key,"AutoConfigURL")[0]
    except:
        proxy = False
    winreg.CloseKey(key)
    return proxy
# 通过查询注册表中其他键的值知道某些代理的设置地址以及端口
system_proxy = check_proxy()
proxy_handler = request.ProxyHandler({'http:':"http://%s/" % system_proxy
                ,'https:':"http://%s/" % system_proxy,'ftp':"ftp://%s/" % system_proxy})
# 才开始那个是绕过代理,这个可以使用代理

不过蜘蛛出了墙的那个速度,我也是醉了

当然如果你想跟着系统的代理设置走,你就没必要看这个帖子了。

喂,你看到底部了欸!n(*≧▽≦*)n

评论

  1. S.M╭⌒倾心之恋
    5年前
    2015-9-17 22:03:11

    写的好着呢 很实用 帮助很大

发送评论 编辑评论


|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇