前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python:爬虫使用代理ip

Python:爬虫使用代理ip

作者头像
wo.
发布2021-06-15 10:59:20
1.3K0
发布2021-06-15 10:59:20
举报
文章被收录于专栏:了不得的专栏

最近在爬某网站的时候,最开始网站不封ip 或者说 站长没有管这方面 就一直使用本地的ip,然后就导致ip被拉黑了 我能怎么办,我也很无奈呀。只好给爬虫加个代理ip咯

经过一番折腾,成功从403变为200

代码语言:javascript
复制
import requests

proxies = {
  'http': 'http://10.10.1.10:5323',
  'https': 'http://10.10.1.10:5323'
}
url = 'http://test.xxx'
response = requests.get(url,proxies = proxies)

1、首先要有一个代理ip

正好今天在v站看到这个网站,每天更新代理ip。在此感谢v友(#^.^#)

https://www.kewangst.com/ProxyList

日后准备再写个爬虫,爬取这个网站,获取自用代理ip池

2、requests加上proxies参数

代码语言:javascript
复制
proxies = {
  "http": "http://10.10.1.10:3128",
  "https": "http://10.10.1.10:1080",
}

requests.get("http://example.org", proxies=proxies)

经过折腾,自己解释一下这个参数的意思,可能有误

2.1 proxies中设置两个key : httphttps

表示http链接 会使用key值 = http 的代理,https链接 会使用key值 = https 的代理

2.2 当然你也可以只设置一个key

但是你的保证你的url协议(http|https)proxies的key值 是一致的。 如果不一致,实际就不会走代理

2.3 并且,经过测试发现,https链接 也可以使用http的代理ip

但是别忘了url协议proxies的key值 要保持一致

代码语言:javascript
复制
url = "https://ssl.com"
proxies = {
  "https": "http://10.10.1.10:1080"
}

requests.get(url, proxies=proxies)
2.4 分析原因:(当然其实也只是猜测,但是也八九不离十)

requests命令 会先判断proxies参数 里面传入的key(http/https),看它与目标url协议 是否一致, 如果url是http,proxies里面也传入了http的key,(或者同是https)。那么此时,requests就会认为代理有效,就会通过代理来访问这个url。 如果url是http,但是key是https,(或者url是https,但是key是http)。那么requests就会认为两者不匹配,就会直接去访问目标地址而不走代理。

3、proxies的其他设置

3.1 要为某个特定的连接方式或者主机设置代理,使用 scheme://hostname 作为 key, 它会针对指定的主机和连接方式进行匹配。
代码语言:javascript
复制
import requests

#访问url会使用代理
#访问url2不会使用代理
proxies = {'http://url.xxx': 'http://10.10.1.10:5323'}
url = 'http://url.xxx'
url2 = 'http://url2.xxx'
response = requests.get(url,proxies = proxies)
3.2 若你的代理需要使用HTTP Basic Auth,可以使用 http://user:password@host/ 语法:
代码语言:javascript
复制
proxies = {
    "http": "http://user:pass@10.10.1.10:3128/",
}

4、最后放一个网站,这个网址可以获取机器的外网ip

end

5、其他

wget下载网页的时候使用代理原理其实和requests是一样的。都是根据key和url协议是否一致来判定是否使用代理的

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-05-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、首先要有一个代理ip
  • 2、requests加上proxies参数
    • 2.1 proxies中设置两个key : http 和https
      • 2.2 当然你也可以只设置一个key
        • 2.3 并且,经过测试发现,https链接 也可以使用http的代理ip
          • 2.4 分析原因:(当然其实也只是猜测,但是也八九不离十)
          • 3、proxies的其他设置
            • 3.1 要为某个特定的连接方式或者主机设置代理,使用 scheme://hostname 作为 key, 它会针对指定的主机和连接方式进行匹配。
              • 3.2 若你的代理需要使用HTTP Basic Auth,可以使用 http://user:password@host/ 语法:
              • 4、最后放一个网站,这个网址可以获取机器的外网ip
              • end
              • 5、其他
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档