简单示例解析python爬虫IP的使用(小白篇)
创建一个IP池并对其进行管理
Python爬虫常常会面临自己ip地址被封的情况,也许刚入行的小白就只能等ip解封之后再进行接下来的操作了,但是这样的方式却是最不能借鉴的,万一数据需求量大,那要等到猴年马月呢?所以今天我们就来探讨下如何创建一个IP池并对其进行管理。对刚入行的小白很有帮助,希望大家耐心看下去,需要的朋友可以参考下。
很多的网站都有反爬机制,其中就有这样一条,就是服务器会检查请求的user-agent参数值,如果检查的结果为python,那么服务器就知道这是爬虫,所以为了避免被服务器发现这是爬虫,我们需要添加随机user-agen。这样就可以避免服务器发现这是同一个user-agent发起多次请求。
还有一条就是网站会封IP,一般这样的情况就直接添加代理IP就可以,那么,从哪里获取IP呢?小编用的是亿牛云的这个网址,网址链接为:https://www.16yun.cn/,。
动态转发代理
很多小白会问怎么使用IP,这里介绍一种最简单方便的方式,那就是动态转发代理,我们接下来分享个示例供大家参考下:
#! -- encoding:utf-8 --
import requests import random # 要访问的目标页面 targetUrl = "http://httpbin.org/ip" # 要访问的目标HTTPS页面 # targetUrl = "https://httpbin.org/ip" # 代理服务器(产品官网 www.16yun.cn) proxyHost = "t.16yun.cn" proxyPort = "31111" # 代理验证信息 proxyUser = "username" proxyPass = "password" proxyMeta = "http://%(user)s:%(pass)s@%(host)s:%(port)s" % { "host" : proxyHost, "port" : proxyPort, "user" : proxyUser, "pass" : proxyPass, } # 设置 http和https访问都是用HTTP代理 proxies = { "http" : proxyMeta, "https" : proxyMeta, } # 设置IP切换头 tunnel = random.randint(1,10000) headers = {"Proxy-Tunnel": str(tunnel)} resp = requests.get(targetUrl, proxies=proxies, headers=headers) print resp.status_code print resp.text
验证
那我们在添加了代理IP之后怎么验证使用的ip是否可用?这里我们可以通过访问IP检测网址验证:
http://current.ip.16yun.cn:802,只要返回的是代理IP那么就证明代理使用成功了,我们可以直接去访问需要获取的数据网站了。
以上就是简单示例解析python爬虫IP的使用的详细内容,更多关于python爬虫IP使用的资料请关注脚本之家其它相关文章!
相关文章
读取json格式为DataFrame(可转为.csv)的实例讲解
今天小编就为大家分享一篇读取json格式为DataFrame(可转为.csv)的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2018-06-06
最新评论