首页 > 编程语言 >Python快速上手爬虫的7大技巧

Python快速上手爬虫的7大技巧

时间:2024-10-08 11:47:17浏览次数:11  
标签:HTTP 技巧 Python 爬虫 验证码 学习 cookie

Python应用最多的场景还是Web快速开发、爬虫、自动化运维。爬虫在开发过程中也有很多复用的过程,这里总结一下,以后也能省些事情。

   1、基本抓取网页

    get方法

    post方法

   2、使用代理IP

在开发爬虫过程中经常会遇到IP被封掉的情况,这时就需要用到代理IP;

在urllib2包中有ProxyHandler类,通过此类可以设置代理访问网页,如下代码片段:

   3、Cookies处理

cookies是某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密),python提供了cookielib模块用于处理cookies,cookielib模块的主要作用是提供可存储cookie的对象,以便于与urllib2模块配合使用来访问Internet资源。

代码片段:

关键在于CookieJar(),它用于管理HTTP cookie值、存储HTTP请求生成的cookie、向传出的HTTP请求添加cookie的对象。整个cookie都存储在内存中,对CookieJar实例进行垃圾回收后cookie也将丢失,所有过程都不需要单独去操作。

手动添加cookie:

   4、伪装成浏览器

某些网站反感爬虫的到访,于是对爬虫一律拒绝请求。所以用urllib2直接访问网站经常会出现HTTP Error 403: Forbidden的情况。

对有些 header 要特别留意,Server 端会针对这些 header 做检查:

1.User-Agent 有些 Server 或 Proxy 会检查该值,用来判断是否是浏览器发起的 Request。

2.Content-Type 在使用 REST 接口时,Server 会检查该值,用来确定 HTTP Body 中的内容该怎样解析。

这时可以通过修改http包中的header来实现,代码片段如下:

   5、验证码的处理

对于一些简单的验证码,可以进行简单的识别。我们只进行过一些简单的验证码识别,但是有些反人类的验证码,比如12306,可以通过打码平台进行人工打码,当然这是要付费的。

   6、gzip压缩

有没有遇到过某些网页,不论怎么转码都是一团乱码。哈哈,那说明你还不知道许多web服务具有发送压缩数据的能力,这可以将网络线路上传输的大量数据消减 60% 以上。这尤其适用于 XML web 服务,因为 XML 数据 的压缩率可以很高。

但是一般服务器不会为你发送压缩数据,除非你告诉服务器你可以处理压缩数据。

于是需要这样修改代码:

这是关键:创建Request对象,添加一个 Accept-encoding 头信息告诉服务器你能接受 gzip 压缩数据。

然后就是解压缩数据:

   7、多线程并发抓取

单线程太慢的话,就需要多线程了,这里给个简单的线程池模板 这个程序只是简单地打印了1-10,但是可以看出是并发的。

虽然说Python的多线程很鸡肋,但是对于爬虫这种网络频繁型,还是能一定程度提高效率的。

最后,我精心筹备了一份全面的Python学习大礼包,完全免费分享给每一位渴望成长、希望突破自我现状却略感迷茫的朋友。无论您是编程新手还是希望深化技能的开发者,都欢迎加入我们的学习之旅,共同交流进步!

标签:HTTP,技巧,Python,爬虫,验证码,学习,cookie
From: https://blog.csdn.net/biancheng_syz/article/details/142754772

相关文章

  • Python 正则表达式高级应用指南
    正则表达式是一种强大的文本模式匹配工具,在Python中,我们可以使用re模块来进行正则表达式的操作。以下是一些高级的正则表达式应用示例:复杂的模式匹配importretext="Hello,[email protected]."email_pattern=r'\b[......
  • Python 高级编程:深入探索字符串切片
    在Python中,字符串切片是一种强大的操作,它允许我们从字符串中提取特定的部分。以下是关于Python字符串切片的高级教学: 基本的字符串切片string = "Hello, World!"# 提取从索引 7 到索引 11 的子串(不包括索引 11)substring = string[7:11]print(substring)......
  • 你可能没听过的手机输入法技巧
    其实手机输入法真的很强‍手机输入法的自带功能比起电脑上的输入法,手机上的输入法有一些特有的功能。这里就以iPhone为例进行讲解,而安卓的话大部分情况也有类似的功能,这里就不一一进行评测了。‍快速移动光标当内容很多,想要移动光标到内容中间进行编辑的时候,可以直接在键......
  • 【重建虚拟环境】虚拟环境里python.exe被破坏了,对策
    虚拟环境里python.exe被破坏了,python.exe变成了0KB虚拟环境不能使用了。这个时候需要重建虚拟环境如果你重建虚拟环境,之前使用pipinstall安装的所有包确实会丢失,因为新的虚拟环境不会保留之前的包记录。不过,有一种简单的办法可以避免这个问题,并轻松恢复之前安装的包:如果你......
  • visual studio 使用技巧 1:快速找到接口的实现类
    在VisualStudio中,可以通过以下几种方法快速查找接口的实现类:1.使用“查找所有引用”功能右键点击接口名称。选择“查找所有引用”(FindAllReferences)。在结果窗口中,您可以看到所有实现了该接口的类。2.使用“导航到实现”功能(推荐)这个我......
  • 【Python数据采集】国家自然科学基金大数据知识管理服务门户数据采集
    【Python数据采集】国家自然科学基金大数据知识管理服务门户数据采集具体需求:从https://kd.nsfc.cn/网站中根据关键词搜索项目信息,收集列表中展示的信息以及详情页面中的参与人员信息等。在开始干活之前,我们首先要做的是弄清楚需求,然后分析目标网址,确定目标数据所在接口及请求参......
  • Python 高级绘图:从基础到进阶的可视化实践
    在Python中,我们可以使用多种库来进行绘图,其中matplotlib是一个非常强大的绘图库。以下将介绍一些高级的绘图技巧和代码实现:绘制简单折线图importmatplotlib.pyplotaspltx=[1,2,3,4,5]y=[2,4,6,8,10]plt.plot(x,y)plt.xlabel('X轴')plt.ylabel('Y轴')plt......
  • 这里有11种方法,供你用Python下载文件
    今天我们一起学习如何使用不同的Python模块从web下载文件。此外,你将下载常规文件、web页面、AmazonS3和其他资源。最后,你将学习如何克服可能遇到的各种挑战,例如下载重定向的文件、下载大型文件、完成一个多线程下载以及其他策略。如果你正在学习Python并且找不到方向的话可......
  • Python 循环语句的高级应用与技巧
    在Python中,循环语句是实现重复操作的重要工具。以下将深入探讨一些高级的应用和技巧:for循环的高级用法#遍历字典的键值对my_dict={'a':1,'b':2,'c':3}forkey,valueinmy_dict.items():print(f'Key:{key},Value:{value}')#遍历多个序列names=['Alice',......
  • 复制粘贴,快速将Python程序打包成exe
    为了将Python程序发送给不懂代码和没有安装Python的同事、朋友使用,最好的方式就是将Python程序打包成exe可执行文件,再发送给他们。我之前曾经打包过几次,操作并没有难度,但不会记打包命令,每次打包时都需要重新查命令。所以本文记录打包过程,需要打包时可以直接复制粘贴,快速完成,......