python爬虫如何配置动态爬虫代理

很多网站会检测某一段时间某个IP的访问次数(通过流量统计,系统日志等),如果访问次数多的不像正常人,它会禁止这个IP的访问。
所以我们可以设置一些代理服务器,每隔一段时间换一个代理,就算IP被禁止,依然可以换个IP继续爬取

使用代理流程

代理的使用大概可以分为四步
1.构建处理器handler(代理IP)
2.使用处理器构建连接方法(build_opener)
3.构建请求
4.使用连接方法中的open函数打开请求
其中最重要的是第一步构建处理器的ProxyHandler函数

爬取数据

这一步,你要明确要得到的内容是什么?是HTML源码,还是Json格式的字符串等。

最基本的爬取

抓取大多数情况属于get请求,即直接从对方服务器上获取数据。

 

首先,Python中自带urllib及urllib2这两个模块,基本上能满足一般的页面抓取。另外,requests也是非常有用的包,与此类似的,还有httplib2等等。


import requestsurl = http://current.ip.16yun.cn:802response = requests.get(url)content = requests.get(url).contentprint("response headers:", response.headers)print("content:", content)


 

此外,对于带有查询字段的url,get请求一般会将来请求的数据附在url之后,以?分割url和传输数据,多个参数用&连接。


import requestsdata = {'wd':'nike', 'ie':'utf-8'}url='https://www.baidu.com'response = requests.get(url=url, params=data)



如何配置动态的代理ip

这里使用的是收费的代理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

 

http://current.ip.16yun.cn:802
这是一个检测代理是否使用成功的网站
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值