Python反爬虫技术之防止IP地址被封杀的讲解
在使用爬虫爬取别的网站的数据的时候,如果爬取频次过快,或者因为一些别的原因,被对方网站识别出爬虫后,自己的IP地址就面临着被封杀的风险。一旦IP被封杀,那么爬虫就再也爬取不到数据了。
那么常见的更改爬虫IP的方法有哪些呢?
1,使用动态IP拨号器服务器。
动态IP拨号服务器的IP地址是可以动态修改的。其实动态IP拨号服务器并不是什么高大上的服务器,相反,属于配置很低的一种服务器。我们之所以使用动态IP拨号服务器,不是看中了它的计算能力,而是能够实现秒换IP。
动态IP拨号服务器有一个特点,就是每次拨号都会更换一个新的IP地址。多年前家庭中的上网方式大多采用的ADSL拨号上网,也就是断开网络后再拨号一次,外网IP就会换成另一个。
通常来讲,这个IP池很大,可能有多个AB号段,IP数量基本上用不完。对于爬虫来说,这简直是大杀器,能够轻松的解决封杀IP的限制。
使用动态IP拨号服务器,需要付费购买。
2,使用Tor代理服务器。
Tor(The onion router, 洋葱路由器)是互联网上用于保护隐私最有利的工具之一。如果我们不适用Tor,网络请求就会直接发送给目标服务器。
相比之下,如果我们使用tor发送网络请求,客户端就会选择一条随机路径到服务器。这条随机路径中间会经过多个Tor节点,而且使用洋葱路由加密技术,使得任何节点都不能偷取加密数据,并且该请求的传输路径难以追踪,也查不出起点在哪。
因此,我们可以使用tor技术改变请求的IP地址,作为一种终极的防止IP封锁的爬虫方案。
最近在学习《Python网络爬虫从入门到实践》,了解到其中的关于反爬虫的一些话题,做一下学习笔记。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接
相关推荐
-
通过python爬虫赚钱的方法
(1)在校大学生.最好是数学或计算机相关专业,编程能力还可以的话,稍微看一下爬虫知识,主要涉及一门语言的爬虫库.html解析.内容存储等,复杂的还需要了解URL排重.模拟登录.验证码识别.多线程.代理.移动端抓取等.由于在校学生的工程经验比较少,建议找一些少量数据抓取的项目,而不要去接一些监控类的项目.或大规模抓取的项目.慢慢来,步子不要迈太大. (2)在职人员.如果你本身就是爬虫工程师,挣钱很简单.如果你不是,也不要紧.只要是做IT的,稍微学习一下爬虫应该不难.在职人员的优势是熟悉项目开发流程
-
自学python的建议和周期预算
如果是报名培训班的话,学习的速度可能会更快一些,毕竟是自己花钱了. 自学python爬虫方法: 首先要掌握一些有关爬虫的基础知识,基本的要知道什么是爬虫?为什么要爬虫?数据是从哪里得来的?先了解这些基础的知识点才能对你要学习的东西有基本的了解,然后还有下面这些数据也需要了解: 1.HTML,了解网页的结构,内容等,帮助后续的数据爬取. 2.Python,可以去网上找一些教学视频,教学博客等等,去看一下,然后有基础了之后还可以找一些晋升的视频,再打打基础. 3.TCP/IP协议,HTTP协议,了解
-
python3.4爬虫demo
python 3.4 所写爬虫 仅仅是个demo,以百度图片首页图片为例.能跑出图片上的图片: 使用 eclipse pydev 编写: from SpiderSimple.HtmLHelper import * import imp import sys imp.reload(sys) #sys.setdefaultencoding('utf-8') html = getHtml('http://image.baidu.com/') try: getImage(html) exit() exc
-
python爬虫获取小区经纬度以及结构化地址
本文实例为大家分享了python爬虫获取小区经纬度.地址的具体代码,供大家参考,具体内容如下 通过小区名称利用百度api可以获取小区的地址以及经纬度,但是由于api返回的值中的地址形式不同,所以可以首先利用小区名称进行一轮爬虫,获取小区的经纬度,然后再利用经纬度Reverse到小区的结构化的地址.另外小区名称如果是'...号',可以在爬虫开始之前在'号'之后加一个'院',得到的精确度更高.这次写到程序更加便于二次利用,只需要给程序传递一个dataframe就可以坐等结果了.现在程序已经写好了,就
-
Python爬虫实战之12306抢票开源
今天就和大家一起来讨论一下python实现12306余票查询(pycharm+python3.7),一起来感受一下python爬虫的简单实践 我们说先在浏览器中打开开发者工具(F12),尝试一次余票的查询,通过开发者工具查看发出请求的包 余票查询界面 可以看到红框框中的URL就是我们向12306服务器发出的请求,那么具体是什么呢?我们来看看 https://kyfw.12306.cn/otn/leftTicket/queryZ?leftTicketDTO.train_date=2019-01-2
-
Python3爬虫全国地址信息
PHP方式写的一团糟所以就用python3重写了一遍,所以因为第二次写了,思路也更清晰了些. 提醒:可能会有502的错误,所以做了异常以及数据库事务处理,暂时没有想到更好的优化方法,所以就先这样吧.待更懂python再进一步优化哈 欢迎留言赐教~ #!C:\Users\12550\AppData\Local\Programs\Python\Python37\python.exe # -*- coding: utf-8 -*- from urllib.request import urlopen
-
Python反爬虫技术之防止IP地址被封杀的讲解
在使用爬虫爬取别的网站的数据的时候,如果爬取频次过快,或者因为一些别的原因,被对方网站识别出爬虫后,自己的IP地址就面临着被封杀的风险.一旦IP被封杀,那么爬虫就再也爬取不到数据了. 那么常见的更改爬虫IP的方法有哪些呢? 1,使用动态IP拨号器服务器. 动态IP拨号服务器的IP地址是可以动态修改的.其实动态IP拨号服务器并不是什么高大上的服务器,相反,属于配置很低的一种服务器.我们之所以使用动态IP拨号服务器,不是看中了它的计算能力,而是能够实现秒换IP. 动态IP拨号服务器有一个特点,就是每
-
python反反爬虫技术限制连续请求时间处理
目录 前言 用勾子函数根据缓存行为设置访问时间 爬虫相关库 1. 爬虫常用的测试网站:httpbin.org 2. requests-cache 为原有代码微创式添加缓存功能 缓存的清空和识别 自定义设置缓存的形式 自定义设置缓存的例子1:设置缓存文件类型 自定义设置缓存的例子2:设置缓存保存内容 前言 一般的反爬措施是在多次请求之间增加随机的间隔时间,即设置一定的延时.但如果请求后存在缓存,就可以省略设置延迟,这样一定程度地缩短了爬虫程序的耗时. 下面利用requests_cache实现模拟浏
-
python反爬虫方法的优缺点分析
我们选择一种问题的解决办法,通常需要考虑到想要达到的效果,还有最重要的是这个办法本身的优缺点有哪些,与其他的方法对比哪一个更好.之前小编之前也教过大家在python应对反爬虫的方法,那么小伙伴们知道具体情况下选择哪一种办法更适合吗?今天就其中的user-agent和ip代码两个办法进行优缺点分析比较,让大家可以明确不同办法的区别从而进行选择. 方法一: 可以自己设置一下user-agent,或者更好的是,可以从一系列的user-agent里随机挑出一个符合标准的使用. 缺点: 容易伪造头部,gi
-
python使用Flask框架获取用户IP地址的方法
本文实例讲述了python使用Flask框架获取用户IP地址的方法.分享给大家供大家参考.具体如下: 下面的代码包含了html页面和python代码,非常详细,如果你正使用Flask,也可以学习一下最基本的Flask使用方法. python代码如下: from flask import Flask, render_template, request # Initialize the Flask application app = Flask(__name__) # Default route,
-
Python简单获取网卡名称及其IP地址的方法【基于psutil模块】
本文实例讲述了Python简单获取网卡名称及其IP地址的方法.分享给大家供大家参考,具体如下: windows上想知道网卡和IP地址,可以使用ipconfig命令,在linux上可以使用ifconfig命令,得到输出后,可以解析输出内容,我要介绍的方法更为简单,只需要安装一个名为psutil的第三方库即可 # -*- coding: utf-8 -*- #! python2 import psutil #获取网卡名称和其ip地址,不包括回环 def get_netcard(): netcard_
-
Python实现通过解析域名获取ip地址的方法分析
本文实例讲述了Python实现通过解析域名获取ip地址的方法.分享给大家供大家参考,具体如下: 从网上查找的一些资料,特此做个笔记 案例1: def getIP(domain): myaddr = socket.getaddrinfo(domain, 'http') print(myaddr[0][4][0]) 执行函数 getIP("www.google.com") 案例2: def get_ip_list(domain): # 获取域名解析出的IP列表 ip_list = [] t
-
python 匹配url中是否存在IP地址的方法
因为需要检测一个一个链接中是否包含了IP地址,在这里需要使用到正则表达式 ,python完美的支持了正则表达式,在这里使用re模块来完成,对正则表达式并不是很熟练,每次都是需要用的时候现查一下然后写一下,这里给出来自己的代码以及借鉴别人的匹配模式 #!/usr/bin/env python # -*- coding: utf-8 -*- ''' 功能:对于给定的URL,检测其中是否包含IP ''' import re def ip_exist_two(one_url): compile_rule
-
cookies应对python反爬虫知识点详解
在保持合理的数据采集上,使用python爬虫也并不是一件坏事情,因为在信息的交流上加快了流通的频率.今天小编为大家带来了一个稍微复杂一点的应对反爬虫的方法,那就是我们自己构造cookies.在开始正式的构造之前,我们先进行简单的分析如果不构造cookies爬虫时会出现的一些情况,相信这样更能体会出cookies的作用. 网站需要cookies才能正常返回,但是该网站的cookies过期很快,我总不能用浏览器开发者工具获取cookies,然后让程序跑一会儿,每隔几分钟再手动获取cookies,再让
-
用sleep间隔进行python反爬虫的实例讲解
在找寻材料的时候,会看到一些暂时用不到但是内容不错的网页,就这样关闭未免浪费掉了,下次也不一定能再次搜索到.有些小伙伴会提出可以保存网页链接,但这种基本的做法并不能在网页打不开后还能看到内容.我们完全可以用爬虫获取这方面的数据,不过操作过程中会遇到一些阻拦,今天小编就教大家用sleep间隔进行python反爬虫,这样就可以得到我们想到的数据啦. 步骤 要利用headers拉动请求,模拟成浏览器去访问网站,跳过最简单的反爬虫机制. 获取网页内容,保存在一个字符串content中. 构造正则表达式,
-
python和shell实现的校验IP地址合法性脚本分享
一.python校验IP地址合法性 执行效果: python代码: 复制代码 代码如下: [root@yang python]# vi check_ip.py #!/usr/bin/python import os,sys def check_ip(ipaddr): import sys addr=ipaddr.strip().split('.') #切割IP地址为一个列表 #print addr if len(addr) !=
随机推荐
- html中插入rm格式视频文件的代码
- 基于js原生和ajax的get和post方法以及jsonp的原生写法实例
- Sql 批量查看字符所在的表及字段
- js 文件引入实现代码
- Asp.net的应用程序对象和页面生存周期
- Vmware安装OpenWrt15.05虚拟机教程
- js窗口关闭提示信息(兼容IE和firefox)
- ASP.NET两个截取字符串的方法分享
- Android入门之TabHost与TabWidget实例解析
- jsp中自定义Taglib详解
- MySql中使用正则表达式查询的方法
- 浅谈Jquery中Ajax异步请求中的async参数的作用
- java实现斐波那契数列的3种方法
- 采用软件负载均衡器实现web服务器集群(iis+nginx)
- jQuery图片轮播插件——前端开发必看
- C#使用Process类调用外部exe程序
- Java语言实现简单FTP软件 FTP远程文件管理模块实现(10)
- JS控制鼠标拒绝点击某一按钮的实例
- seajs下require书写约定实例分析
- Django Channels 实现点对点实时聊天和消息推送功能