由于现在很多网站都有反爬虫机制,同一个ip不能频繁访问同一个网站,这就使得我们在进行大量数据爬取时需要使用代理进行伪装,本博客给出几个免费ip代理获取网站爬取ip代理的代码,可以嵌入到不同的爬虫程序中去,已经亲自测试有用。需要的可以拿去使用(本人也是参考其他人爬虫程序实现的,但是忘记原地址了)。

# coding=utf-8
import urllib2
import reproxy_list = []
total_proxy = 0def get_proxy_ip():global proxy_listglobal total_proxyrequest_list = []headers = {'Host': 'www.xicidaili.com','User-Agent': 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)','Accept': r'application/json, text/javascript, */*; q=0.01','Referer': r'http://www.xicidaili.com/',}for i in range(3, 11):request_item = "http://www.xicidaili.com/nn/" + str(i)request_list.append(request_item)for req_id in request_list:req = urllib2.Request(req_id, headers=headers)response = urllib2.urlopen(req)html = response.read().decode('utf-8')ip_list = re.findall(r'\d+\.\d+\.\d+\.\d+', html)port_list = re.findall(r'<td>\d+</td>', html)for i in range(len(ip_list)):total_proxy += 1ip = ip_list[i]port = re.sub(r'<td>|</td>', '', port_list[i])proxy = '%s:%s' % (ip, port)proxy_list.append(proxy)return proxy_listdef get_proxy_ip1():global proxy_listglobal total_proxyrequest_list = []headers = {'Host': 'www.kuaidaili.com','User-Agent': 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)','Accept': r'application/json, text/javascript, */*; q=0.01','Referer': r'www.kuaidaili.com/',}for i in range(1, 10):request_item = "https://www.kuaidaili.com/free/inha/" + str(i)+"/"request_list.append(request_item)for req_id in request_list:req = urllib2.Request(req_id, headers=headers)response = urllib2.urlopen(req)html = response.read().decode('utf-8')ip_list = re.findall(r'\d+\.\d+\.\d+\.\d+', html)port_list = re.findall(r'<td data-title="PORT">\d+</td>', html)for i in range(len(ip_list)):total_proxy += 1ip = ip_list[i]port = re.findall(r'\d+',  port_list[i])[0]proxy = '%s:%s' % (ip, port)proxy_list.append(proxy)return proxy_listdef get_proxy_ip2():global proxy_listglobal total_proxyrequest_list = []headers = {'Host': 'www.ip3366.net','User-Agent': 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)','Accept': r'application/json, text/javascript, */*; q=0.01','Referer': r'www.ip3366.net/',}for i in range(1, 10):request_item = "http://www.ip3366.net/?stype=1&page=" + str(i)request_list.append(request_item)for req_id in request_list:req = urllib2.Request(req_id, headers=headers)response = urllib2.urlopen(req)html = response.read()ip_list = re.findall(r'\d+\.\d+\.\d+\.\d+', html)port_list = re.findall(r'<td>\d+</td>', html)for i in range(len(ip_list)):total_proxy += 1ip = ip_list[i]port = re.sub(r'<td>|</td>', '', port_list[i])proxy = '%s:%s' % (ip, port)proxy_list.append(proxy)return proxy_listif __name__=="__main__":get_proxy_ip()# get_proxy_ip1()get_proxy_ip2()print("获取ip数量为:" + total_proxy)

获取结果:

下面给一个简单的使用代理访问网站的代码:

    proxy_ip = random.choice(proxy_list)user_agent = random.choice(user_agent_list)print proxy_ipprint user_agentproxy_support = urllib2.ProxyHandler({'http': proxy_ip})opener = urllib2.build_opener(proxy_support, urllib2.HTTPHandler)urllib2.install_opener(opener)req = urllib2.Request(url)req.add_header("User-Agent", user_agent)c = urllib2.urlopen(req, timeout=10)

爬虫利器:Python获取免费IP代理相关推荐

  1. Python创建免费Ip代理池,伪装Ip。

    Python创建免费Ip代理池 主要使用requests第三方库.欸嘿,有了这个,就不用花钱买Ip了,生活小妙招.妙哇. 一.具体思路 1.利用requests爬取免费代理Ip的网页 2.存储列表后, ...

  2. 利用爬虫获取免费IP代理

    项目目标 通过爬虫获取"西拉代理"(http://www.xiladaili.com)上的高匿代理,并储存至一个列表. 项目分析 首先对网页进行观察,主体内容如下图所示. 不但指明 ...

  3. Python每日一练(24)-requests 模块获取免费的代理并检测代理 IP 是否有效

    目录 1. 通过代理服务发送请求 2. 获取免费的代理 IP 3. 检测代理 IP 是否有效 1. 通过代理服务发送请求 在爬取网页的过程中,经常会出现不久前可以爬取的网页现在无法爬取的情况,这是因为 ...

  4. 免费IP代理池定时维护,封装通用爬虫工具类每次随机更新IP代理池跟UserAgent池,并制作简易流量爬虫...

    前言 我们之前的爬虫都是模拟成浏览器后直接爬取,并没有动态设置IP代理以及UserAgent标识,这样很容易被服务器封IP,因此需要设置IP代理,但又不想花钱买,网上有免费IP代理,但大多都数都是不可 ...

  5. 【实用工具系列之爬虫】python实现爬取代理IP(防 ‘反爬虫’)

    系列 [实用工具系列之爬虫]python实现爬取代理IP(防 '反爬虫') [实用工具系列之爬虫]python实现快速爬取财经资讯(防 '反爬虫') 本文使用python实现代理IP的爬取,并可以防' ...

  6. Python 爬虫入门(二)—— IP代理使用 - 不剃头的一休哥 - 博客园

    Python 爬虫入门(二)-- IP代理使用 - 不剃头的一休哥 - 博客园 Python 爬虫入门(二)-- IP代理使用 - 不剃头的一休哥 - 博客园 posted on 2016-01-26 ...

  7. Python搭建自己[IP代理池]

    IP代理是什么: ip就是访问网页数据服务器位置信息,每一个主机或者网络都有一个自己IP信息 为什么要使用代理ip: 因为在向互联网发送请求中,网页端会识别客户端是真实用户还是爬虫程序,在今天以互联网 ...

  8. 使用免费ip代理进行投票

    只要是投票系统,必然要限制一个用户投多张票. 如何限制呢?限制ip是最直观最简单的思路,可是代理池可以解决限制ip的情况. 如果投票页面前面加上一个验证码,那程序就会有点困难了. 有些投票使用微信号, ...

  9. 爬虫中的User-Agent和IP代理

    爬虫中的User-Agent和IP代理 一.User-Agent 按照百度百科的解释:User-Agent中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本 ...

最新文章

  1. 优达学城《DeepLearning》2-4:自编码器(无监督学习算法)
  2. ArcGIS Engine基础开发教程(转)
  3. AFNetwork作用和用法详解
  4. 分享:MetaModel 3.2.5 发布,数据库元模型
  5. 使用Ext.grid.Panel显示远程数据
  6. matlab铁路平板车装货问题,两辆铁路平板车的装货问题最终论文
  7. response.end后抛了异常_(七)异常处理
  8. 【面向对象】面向对象程序设计测试题4-Java中的类和对象测试
  9. hive常见的建表方式有哪些?各自的使用场景是?
  10. Unity3D开发环境的搭建
  11. PostGIS几何图形操作
  12. 学科前沿讲座 神经网络,机器学习,深度学习
  13. java中定义数组的3种方式
  14. 电脑系统安装失败无法启动服务器,Windows2008R2安装补丁后系统无法启动
  15. IntelliJ Idea入门教程:如何新建项目
  16. Mixed-Integer Optimization with Constraint Learning
  17. 编译x86 release版本libcurl,支持https
  18. Linux01(VM)
  19. 右脑发达学计算机好吗,学习右脑你必须知道的几件事
  20. 【免费外国云服务器】亚马逊AWS创建EC2实例搭建个人服务器

热门文章

  1. deepnode软件下载地址_deepnode安卓下载- deepnode透视衣服相机软件安装下载
  2. 2018年天源迪亚杯博弈赛后的感受
  3. dockerfile编写之恋爱初体验~~~
  4. VC常用API+示例
  5. 政策“风云突变”!新东方市值蒸发超近2000亿!俞敏洪何去何从?
  6. 计算机组成加减交替法被除数,2019考研408计算机组成原理知识:定点数的表示和运算...
  7. HDOJ 动态规划总结
  8. 7月30日科技资讯|网易游戏回应裁员 10%;字节跳动秘密研发手机;iOS 13 beta 5 发布
  9. 国足晋级12强 | 爬取《NBA30支球队》“现役球员信息”,再来看看篮球吧!
  10. 21day学通python epub_Python Day21