玩爬虫想封我IP?看我伪装浏览器的技术!封我ip不存在!

Python爬虫被封ip的解决方案 当爬虫被封禁IP时,我们可以采取多种方法来解决这个问题。这些方法包括使用代理服务器、动态轮换IP地址、随机化抓取模式、模拟真实指纹、使用多种用户代理、分布式爬虫、提取有用信息时遵循 robots.txt 协议以及尊重网站的规则等。通过灵活运用这些方法,我们可以更好地应对目标网站的反爬虫机制,并确保爬虫程序能够安全、有效地运行。 阅读详情

浏览器伪装技术实战

1 网站常见的反爬虫和应对方法

  • 一般网站从三个方面反爬虫:用户请求的Headers,用户行为,网站目录和数据加载方式。
  • 前两种比较容易遇到,大多数网站都从这些角度来反爬虫。第三种一些应用ajax的网站会采用,这样增大了爬取的难度。

 

 

 

免费资源共享,解答技术问题交流基地群:626017123

 

 

① 通过Headers反爬虫

  • 从用户请求的Headers反爬虫是最常见的反爬虫策略。
  • 很多网站都会对Headers的User-Agent进行检测,还有一部分网站会对Referer进行检测(一些资源网站的防盗链就是检测Referer)。
  • 对于检测Headers的反爬虫,在爬虫中修改或者添加Headers就能很好的绕过。
  • 将浏览器的User-Agent复制到爬虫的Headers中;或者将Referer值修改为目标网站域名。

② 基于用户行为反爬虫

  • 还有一部分网站是通过检测用户行为,例如同一IP短时间内多次访问同一页面,或者同一账户短时间内多次进行相同操作。
  • 大多数网站都是前一种情况,对于这种情况,使用IP代理就可以解决。
  • 对于第二种情况,可以在每次请求后随机间隔几秒再进行下一次请求。
  • 有些有逻辑漏洞的网站,可以通过请求几次,退出登录,重新登录,继续请求来绕过同一账号短时间内不能多次进行相同请求的限制。

③ 动态页面的反爬虫

  • 大多网站界面都是静态页面(即在浏览器中查看源代码可见),但是还有一部分网站中的数据是后期通过ajax请求(或其他方式如推送技术)得到。
  • 解决办法:首先用Firebug或者Fiddler对网络请求进行分析。找到ajax的请求url,通过Python模拟请求得到需要的数据。
  • 但是还有些网站把ajax请求的所有参数全部加密了,针对于这方式我们后面会给大家讲解动态渲染页面信息爬取。

 

2 请求头Headers介绍

1)请求(客户端->服务端[request])
    GET(请求的方式) /newcoder/hello.html(请求的目标资源) HTTP/1.1(请求采用的协议和版本号)
    Accept: */*(客户端能接收的资源类型)
    Accept-Language: en-us(客户端接收的语言类型)
    Connection: Keep-Alive(维护客户端和服务端的连接关系)
    Host: localhost:8080(连接的目标主机和端口号)
    Referer: http://localhost/links.asp(告诉服务器我来自于哪里)
    User-Agent: Mozilla/4.0(客户端版本号的名字)
    Accept-Encoding: gzip, deflate(客户端能接收的压缩数据的类型)
    If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT(缓存时间)
    Cookie(客户端暂存服务端的信息)
    Date: Tue, 11 Jul 2000 18:23:51 GMT(客户端请求服务端的时间)
2)响应(服务端->客户端[response])
    HTTP/1.1(响应采用的协议和版本号) 200(状态码) OK(描述信息)
    Location: http://www.baidu.com(服务端需要客户端访问的页面路径)
    Server:apache tomcat(服务端的Web服务端名)
    Content-Encoding: gzip(服务端能够发送压缩编码类型)
    Content-Length: 80(服务端发送的压缩数据的长度)
    Content-Language: zh-cn(服务端发送的语言类型)
    Content-Type: text/html; charset=GB2312(服务端发送的类型及采用的编码方式)
    Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT(服务端对该资源最后修改的时间)
    Refresh: 1;url=http://www.it315.org(服务端要求客户端1秒钟后,刷新,然后访问指定的页面路径)
    Content-Disposition: attachment; filename=aaa.zip(服务端要求客户端以下载文件的方式打开该文件)
    Transfer-Encoding: chunked(分块传递数据到客户端)
    Set-Cookie:SS=Q0=5Lb_nQ; path=/search(服务端发送到客户端的暂存数据)
    Expires: -1//3种(服务端禁止客户端缓存页面数据)
    Cache-Control: no-cache(服务端禁止客户端缓存页面数据)
    Pragma: no-cache(服务端禁止客户端缓存页面数据)
    Connection: close(1.0)/(1.1)Keep-Alive(维护客户端和服务端的连接关系)
    Date: Tue, 11 Jul 2000 18:23:51 GMT(服务端响应客户端的时间)

 

3 在requests中设置请求头Headers

import requests
# 代理IP地址
proxy = {'HTTP':'117.85.105.170:808','HTTPS':'117.85.105.170:808'}
# header头信息
headers = {
    'Host': 'blog.youkuaiyun.com',
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0',
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'Accept-Language': 'zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3',
    'Accept-Encoding': 'gzip, deflate',
    'Referer': 'http://www.baidu.com',
    'Connection': 'keep-alive',
    'Cache-Control': 'max-age=0',
}
# 请求url地址
url = "http://blog.youkuaiyun.com"
# 提交请求爬取信息
response = requests.get(url,headers=headers,proxies=proxy)
# 获取响应码
print(response.status_code)
  • 浏览器用户代理池信息
user_agents = [
    'Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11',
    'Opera/9.25 (Windows NT 5.1; U; en)',
    'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)',
    'Mozilla/5.0 (compatible; Konqueror/3.5; Linux) KHTML/3.5.5 (like Gecko) (Kubuntu)',
    'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.12) Gecko/20070731 Ubuntu/dapper-security Firefox/1.5.0.12',
    'Lynx/2.8.5rel.1 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/1.2.9',
    'Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.7 (KHTML, like Gecko) Ubuntu/11.04 Chromium/16.0.912.77 Chrome/16.0.912.77 Safari/535.7',
    'Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:10.0) Gecko/20100101 Firefox/10.0',
]
import random
agent = random.choice(user_agents) # 随机获取一个浏览器用户信息
Python网络爬虫技术详解文档 搜索引擎数据收集(Googlebot)价格监控与市场分析舆情监测与数据分析学术研究数据采集。 阅读详情

相关推荐

Python 网络爬虫的常用技术

本文将介绍 Python 网络爬虫的常用技术,包括请求发送与响应处理、页面解析、反爬虫应对、数据存储等内容,帮助读者全面了解 Python 网络爬虫的基本原理和实际应用。requests 提供了丰富的功能,支持设置请求头、Cookies、代理等,是网络爬虫的重要工具。Python 中常用的异步库包括 asyncio、aiohttp 等,通过异步请求处理,能够极大地提高爬取数据的效率。通过 BeautifulSoup,我们能够方便地提取页面中的信息,如标题、链接、文本内容等,是爬虫数据提取的重要工具。

m0_70911440的博客 1693

python爬虫 - 代理ip正确使用方法

主要内容:代理ip使用原理,怎么在自己的爬虫里设置代理ip,怎么知道代理ip是否生效,没生效的话哪里出了问题,个人使用的代理ip(付费)。

引用原创内容标明出处即可 5万+

Python爬虫+requests+伪装浏览器 爬取小说入门总结

前言:       Python越来越流行,跟着时代的进程,我也不用全身心的投入训练,我也来玩玩Python,想着以后工作应该不会有windows的所以我就去安装了Ubuntu 和win10的双系统,这个现在网上到处都是教程我就不细说了,按着教程来就是,百度是个万能的东西,至于pycharm也一样的。 我的配置:Ubuntu16.04+pycharm2018.3(Professional)。 ...

include的背后是微不足道的开始 5792

网络爬虫必备工具:代理IP科普指南

爬虫ip科普指南

全栈川川 21万+

【Python爬虫教程】进阶篇-08 使用代理伪装IP

摘要:介绍代理,设置代理

仲君Johnny的博客 3224

(十三)python网络爬虫(理论+实战)——IP代理、构建IP代理池

本节主要是介绍了IP代理的相关知识,以及如何使用IP代理来解决封Ip的问题,并简单演示了如何构建自己的IP代理池。

c1007857613的专栏 3294

Python爬虫实战(二):爬取构建代理IP池

啦啦啦

努力让自己发光,对的人才能迎着光而来 2万+

AD9371 官方例程构建及单音信号收发

项目构建基本流程和AD9361差不多,由于官方使用的ZCU102,记录下移植遇到的一些问题最终接收到正确的正弦波Errors: 0Errors: 0Errors: 0Errors: 0AD9361。

weixin_44630490的博客 2973

【Python爬虫与数据分析】爬虫代理IP与访问控制

代理IP、正则表达式re、通过代理IP对网站循环访问、通过selenium工具实现访问控制

phoenixFlyzzz的博客 6071

中国知网文献引用导入EndNote9.X,Web of science导入endnote以及谷歌学术导入endnote图文详解,全网最细版本适用EndNote9.x,Endnote20版本

在科研中用到EndNote管理文献,遇到插入文献时,中国知网如何将参考文献导进Endnote9.x或者web of sicence,谷歌学术如何将文章,文献导入进文献管理软件EndNote的详细图文2022版本解释,全网最细的笔记教程,值得大家参考收藏学习

sakura的博客 5178

从零打造M328晶体管测试仪:硬件DIY与烧录避坑指南

本文是一份详尽的M328晶体管测试仪DIY指南,涵盖从硬件选型、PCB设计、焊接组装到固件烧录的全过程。重点解析了使用AVR单片机与Arduino IDE环境时,如何正确设置熔丝位以避免“白屏”等常见问题,并提供了使用ISP编程器进行烧录的实操步骤与校准方法,帮助电子爱好者成功打造属于自己的高性价比元件测试工具。

weixin_29243063的博客 477

网页爬虫使用代理IP的几种方案,爬虫如何设置代理?

不少网络公司在进行爬虫数据业务的时候,都会选择代理IP,网页爬虫在现如今非常常见。

net972的博客 3322

【数字IC设计】Centos 7桌面版 安装Synopsys EDA Tools

简称DC,是Synopsys公司用于做电路综合的核心工具,可以将HDL描述的电路转换为基于工艺库的门级网表。

qiumingT的博客 9812

python网络爬虫--浏览器伪装

爬虫

小马哥的博客 3334

AUTOSAR系统服务篇 - BswM的使用

本文档是对4.0.3版及更高版本的AUTOSAR模式管理应用的介绍。其主要目的是为AUTOSAR的用户和开发人员提供基于示例的AUTOSAR模式管理不同方面的详细概述,这些示例在文中进行了解释。本文中的代码清单共同构成了示例ECU的配置。第2章解释了基础的模式管理概念,例如一般的模式、如何实现模式切换、模式管理者和模式用户的角色等。其次介绍了应用模式管理和基础软件模式管理的依赖关系,两者密切相关。基础软件模式管理器是AUTOSAR R4.0中的中央模式管理模块。它具有很高的可配置性。

IOT2017的博客 848

产品路线图的三种模型(RICE/MoSCoW/Kano),教你如何对需求进行优先级排序

RICE/MoSCoW/Kano三种模型,教你如何对需求进行优先级排序。 也许你会让业务提供一份ROI,记得前不久参加过一场立项会评审,一位很有意思的小产品在会上讲不清楚ROI,评审们要求会后重新梳理,小产品表达不要为难业务方干一些他们不擅长的事了。这个看似笑话的经历,背后隐藏着价值判断已经流于形式。 也许你会要求业务方直接给出需求优先级列表,把任务分为P0到P5,这样的划分除了按需求本质的优先级还同时考虑了开发资源、开发难度等问题。毫不夸张地说,我曾经拿到一张全是P0级别的需求清单,如果一切任务都是高

wenyusuran的专栏 5547

八、python爬虫伪装 [免费伪装ip伪装请求头]

python爬虫伪装,伪装请求头以及使用代理ip前言一、爬虫都拿走了些什么二、伪造请求头1.下载my-fake-useragent库三、使用代理ip总结 前言 在逐渐深入学习爬虫后每一次的测试都心惊胆战,就像拿了驾照开了一段时间不再是新手,但是更害怕别人“不请自来”。随着对爬虫速度和数量的要求逐渐提高,被封禁的可能性也越来越大,为了大家可以安心学习爬虫,这里附上伪装爬虫的方法,我愿称之为 “大变活虫”。 以下案例仅供学习 一、爬虫都拿走了些什么 在使用爬虫爬取网站时网站会获取你的请求头,ip地址,coo

weixin_51852924的博客 1万+

ABAP CURR Data Type 深度解析与实战案例

CURR 数据类型是 SAP ABAP 中为处理货币金额而设计的一种特殊数据类型。CURR 数据类型能够自动根据关联的货币代码字段(例如 WAERS)确定小数位数,从而保证金额数据的精度与正确性。CURR 类型通常在 SAP 数据字典中使用,常见于各类业务数据表中,如会计凭证、销售订单等场景中,用于存储货币金额。CURR 数据类型底层实现上类似于 DEC 数据类型,但其特别之处在于与货币代码字段的绑定,这使得金额的格式化和显示可以自动匹配相应的货币规则。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 880

python爬虫遇到IP被封的情况,怎么办?

代理服务的介绍: 我们在做爬虫的过程中经常最初爬虫都正常运行,正常爬取数据,一切看起来都是美好,然而一杯茶的功夫就出现了错误。 如:403 Forbidden错误,“您的IP访问频率太高”错误,或者跳出一个验证码让我们输入,之后解封,但过一会又出现类似情况。 出现这个现象的原因是因为网站采取了一些反爬中措施,如:服务器检测IP在单位时间内请求次数超过某个阀值导致,称为封IP。 为了解决此类问题,代...

wulishinian的博客 13万+

Linux Kernel入门到精通系列讲解(RV-Kernel 篇) 5.3 从零移植 busybox,基于RISC-V

上一章节我们已经成功启动了`Ubuntu`,但是由于`Ubuntu`占用系统空间过大,所以我转向占用较小的`busybox`,预计就占用`30M`左右。开始移植busybox,基于riscv64

DSMGUOGUO的博客 858

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

python爬虫浏览器伪装和设置代理ip

1.python爬虫浏览器伪装 #导入urllib.request模块 import urllib.request #设置请求头 headers=("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36...

Nothing_227的博客 3642

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

python爬虫碰到IP被封的情况,如何解决?

然而,随着网络环境的日益复杂,爬虫活动也面临着越来越多的挑战,其中IP被封便是常见且棘手的问题。通过调整请求频率、伪装爬虫行为、遵守使用条款、使用高级爬虫技术、管理IP池以及考虑法律与伦理等因素,我们可以有效地降低IP被封的风险并提高爬虫的成功率。使用第三方IP池服务:市面上有许多提供代理IP池服务的公司,它们会定期更新和维护IP池,确保IP的有效性和可用性。使用代理IP:通过代理服务器发送请求,可以隐藏真实的IP地址,同时降低单个IP的访问频率,提高爬虫的隐蔽性。

xinxinhenmeihao的博客 2611

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

如何处理python爬虫ip被封

书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。工欲善其事必先利其器。

m0_62283350的博客 2310

爬虫ip被封的6个解决方法

在爬虫工作中,我们不可避免的会遇到网页的反爬封锁,所以就有了爬虫的攻防,在攻和守之间两股力量不断的抗衡。接下来就讲讲使用爬虫时ip限制问题的六种方法!   方法1.   1、IP必须需要,如果有条件,建议一定要使用代理IP。   2、在有外网IP的机器上,部署爬虫代理服务器。   3、你的程序,使用轮训替换代理服务器来访问想要采集的网站。   好处:   1、程序逻辑变化小,只需要代理...

mr~li的博客 2万+

python伪装ip_Python爬虫如何用高质量代理IP伪装?

Python爬虫如何用高质量代理IP伪装?在Python爬虫抓取数据时,我们很容易被目标网站拒绝,这是目标网站阻止别人批量获取自己网站信息的一种方式,通常会采用封IP作为终极手段,效果非常好。综上所述,作为Python爬虫,我们在采集网站信息过程中要尽量将自己伪装成正常用户,避免IP被封。1、控制好抓取信息的速度和时间,模拟正常用户的浏览器速度。2、设置合理的HTTP请求头。3、设置cookie。...

weixin_39761645的博客 845

python伪装ip_python爬虫17 | 听说你又被封 ip 了,你要学会伪装好自己,这次说说伪装你的头部...

这两天有小伙伴问小帅b为什么我爬取 xx 网站的时候不返回给我数据而且还甩一句话给我“系统检测到您频繁访问,请稍后再来”小帅b看了一下他的代码fori inrange(1,10000):requests.get(url)瞬间震惊了这就感觉被连续 fxxk 了 1w 次你说对方受得了?不封你 IP 封谁?要会伪装要想想看人是怎么访问网站的这次我们来说说伪装 Header那么接下来就是学习python...

weixin_29052717的博客 463
上一篇: 用Python写了一个自动弹幕脚本!各大小主播纷纷找我!净赚三万!
下一篇: 用AI打电话骗走22万,Python编写的软件,克隆你的语音只需5秒!
普通网友
博客等级 码龄7年 438粉丝 263原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值