大家下班后都在干嘛呢? 是宅在家煲电视剧;还是去逛街吃吃火锅唱唱歌;或者是三五好友下馆子一起聚聚聊聊;还是会花点时间学习充电呢?关于Python学习的技巧我总结了些干货,总结了很多的实用技巧,还是有点小价值的。今天主要跟大家分享学习下在爬虫过程中关于代理的使用。 我们在高频率的爬取某个网站页面的时候会给网站服务器带来巨大压力,目标网站为了应对爬虫一般会采用一些反爬技术,最简单粗暴的就是封ip。而我们想要在有限的时间里面达到获取数据的目的。最有效的办法是通过设置代理ip的方式,来获取数据。关于代理的使用,一般就2种方式,API提取的代理 :通过URL提取文本,格式是IP:PORT。爬虫代理:是自动转发技术,通过配置固定代理域名、端口、用户名和密码直接使用,默认每个http请求自动转发。这里着重讲下动态转发,因为这种方式在使用上会很方便快捷,更适合新手学习,项目的启动上也会更快速。动态转发的使用方式比较简单,关于代理使用部分给大家示例下: #! -*- 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池,所以这个爬虫过会减少很多时间,抓取更多的数据。在代理方面有其他问题的可以咨询他们家会有详细的介绍https://www.16yun.cn/。
|