商务服务
【学习教程系列】最通俗的 Python3 网络爬虫入门
2024-12-21 12:35

很多朋友学习Python都是先从爬虫开始,其原因不外两方面

【学习教程系列】最通俗的 Python3 网络爬虫入门

其一Python对爬虫支持度较好,类库众多,其二语法简单,入门容易,所以两者形影相随,不离不弃。

要使用python语言做爬虫,首先需要学习一下python的基础知识,然后补充学习HTML、CSS、JS、Ajax等相关的知识。

01 如何去学习

可以按照三步走来理解:获取数据——解析数据——存储数据

爬虫的第一个步骤就是对所要爬取的网页进行请求,以获取其相应返回的结果,然后再使用一些方法,对响应内容解析,提取想要的内容资源,最后,将提取出来的资源保存起来。

第一步:确定URL

在爬取的时候内容往往很多,需要注意看一下关键字变化时链接的变化,网页的动静态、日期等。

第二步:发送请求

建议从建议从requests+Xpath 开始,requests 负责连接网站,返回网页,Xpath 用于解析网页,便于抽取数据。

第三步:解析网页

请求资源成功后,需要定位返回的整个网页的源代码,对数据进行清洗。

第四步:保存数据;整理好数据后保存

爬虫流程个人经验总结大致的3点

(1)请求数据

请求的数据会有几种可能

1)很简单的html页面,直接requests就可以请求成功

2)js渲染的页面 (这种页面超多)requests请求一堆js数据 ,模块 selenium (代码基于浏览器运行

3)需要登录才能获取用的cookie 请求登录

4)json数据,这个就稍微有点难度

(2)数据处理

数据处理会有几种可能

1)请求的数据是简单的,html结构页面–直接BS4解析就好了

2)请求的数据是json,导入json模块进行解析

3)请求的数据是简单的js渲染的html页面

其实就是js拼写的html,只要把其他无用的数据匹配掉,用正则找到剩下想要的html文本就好了,然后BS4解析。

3)写数据

open方法进行文件打开里面的参数进行文件格式设置,读写文件、编码格式操作。

 

文件格式我用过的就是txt、csv 、xml 大部分文本格式都支持的

  • a–是创建文件 每次写都是重新创建

  • w–是追加

  • a–是读数据

encoding="utf-8"这句话 不加encoding= 在windows系统下会报编码错误

如果数据量太大就写入到数据库

了解完爬虫工作的基本流程,大概也可以知道爬虫需要掌握哪些技能基础了。

抓取数据是不是得掌握数据类型?网页解析得懂点网页知识吧?保存数据,文件读写能力、数据库得了解吧

02 Python基础部分

如果你只是想简单写一些爬虫,那基础语法就够了,想学得更溜一点或者是应用到工作当中的话,最好系统的去学一遍Python,完整的知识体系很重要。

先过一遍最基本的Python知识

  • 常量与变量

  • 常用的数据结构:list  tuple  set  dict的基本操作

  • 条件控制语句、判断、循环语句

  • 字符串

  • 正则表达式

  • 熟悉各类函数

进阶部分

  • 面对对象编程:类的实现、属性定义、实例、多重继承、slf的理解与使用

  • 网络编程

  • Linux基本操作

  • Python文件处理:读写解析

  • Python多进程与线程高并发编程

  • 爬虫框架scrapy

  • 分布式爬虫大规模抓取

Python模块实现爬虫

  • urllib3、requests、lxml、bs4 模块大体作用讲解

  • 使用requests模块 get 方式获取静态页面数据

  • 使用requests模块 post 方式获取静态页面数据

  • 使用requests模块获取 ajax 动态页面数据

  • 使用requests模块模拟登录网站

  • 使用Tesseract进行验证码识别

这里,列了一些python中与爬虫相关的库和框架

  • urllib

  • Requests

  • Beautiful Soup

  • Xpath语法与lxml库

  • PhantomJS

  • Selenium

  • PyQuery

  • Scrapy

......

好处就是不用自己造轮子,大量的库拿过来就可以用,网上的资料也比较多。

入门书籍的话推荐这本:《Python编程从入门到实践》

非常经典的一门入门书籍,我学Python那会儿也用的这本,包括基础知识和项目两部分,书中内容讲解比较详细精简,每个小结都附带有”动手试一试”环节,不会很枯燥。

03 网页基本知识

① HTTP:超文本传输协议

② HTTPS:HTTP+SSL(安全套接字层

③ 理解网站的POST GET的一些相关概念,JS的一些基本内容,方便理解动态网页

进行爬虫学习,要懂得网页,一窍不通肯定不行,HTML中有网页大量的信息,爬虫主要抓取和解析网页的HTML。

HTML(Hyper Text Markup Language)为超文本标记语言,简单来讲,就是一种用于构建网页的编程语言。

一般情况下,网页头部分会定义HTML文档的编码以及网页的标题,而网页体部分则决定着一个网页中的正文内容。

也不用全部都学,但HTTP & HTTPS、网络协议、网络结构(HTML语法、html标签、数据、css样式、js等等什么的)这些还是得知道。

TCP/IP协议、HTTP协议

这些知识能够让你了解在网络请求和网络传输上的基本原理,了解就行,能够帮助今后写爬虫的时候理解爬虫的逻辑。

04 应对反爬

如果网站没有设置反爬措施的话,当然这是 不可能的!反爬和反反爬永远是同时存在的。

大型的网站一般都会设有反爬,掌握一些常用的反爬虫技巧爬取一般的网站问题不大。

常用的反爬技巧

  • 控制ip访问频率

  • 字体反加密

  • 禁止cookie

  • 验证码OCR处理

  • 用户代理池技术

……

应对反爬处理手段

  • 控制IP访问次数频率,增加时间间隔

  • cookie池保存与处理

  • 用户代理池技术

  • 字体反加密

  • 验证码OCR处理

  • 抓包

……

个人觉得反爬无外乎:同一ip访问次数、同一用户,即cookie的访问频率/次数

如果说你的IP和用户数是无穷的,那获取数据的方式压根就不用愁,有各种方法可以获取,但实际上不太可能。

IP可以用IP池来解决,但注册的话一个手机号只能注册一个账号,且绑定了手机号,网站对注册这一块还是比较严的。

如果是碰到了最严重的反爬,用固定的访问频率依然不能抓取到你想要的有效数据,那就放弃吧,没要折腾了。

强制登陆+限制同一用户的访问频率/次数,是最严重的反爬。

我一般下面这三个用得比较多

  • 不断添加新的cookie

  • 降级访问频率

  • 搭建ip池

因为我一般需要爬取的数据都比较简单,所以这几种方法基本可以应付反爬了。

顺便提一句:爬虫攻击网站,这个新手尤其注意

主要是无限制的向服务器发送请求,造成网站服务器崩溃,就算你没有其他的目的,单纯搞着玩玩,但这跟黑客攻击没有任何区别。

所以还是要注意一下,友好爬虫,别把自己坑进去了

另外很多人担心的一点

爬虫本身是不违法的,也没有必要谈爬色变

但是爬虫作为一门技术,用在什么地方?该怎么用?自己心里还是要有点底。切忌被一时的赚大钱和盲目跟风的好奇心,让自己爬进了狱子里。

robots协议相关说明

05 爬取路线选择

  • 静态网页

静态网页以及少量表单交互的网站可以使用如下的技术路线

 
  • 动态网页

简单动态网页,需要有点击或者提交的可以参考selenium + phantomJS组合使用。

06 爬虫进阶

爬虫框架Scrapy

学到这里一般的爬虫已经不是问题了,但碰到更复杂的情况下,scrapy框架的作用就出来了,能非常方便的解决问题。

Scrapy框架构造

Scrapy可以让爬虫实现爬虫工程化、模块化,除了它的功能非常强大之外,还有强大的selector 能够方便地解析 response,便捷地构建request。

当你学会scrapy框架后,就可以自己去搭建一些爬虫框架了。

分布式爬虫

分布式爬虫通俗的讲就是多台机器多个 spider 对多个 url 的同时处理问题,分布式的方式可以极大提高程序的抓取效率。

听来虽然很懵,其实也是利用多线程的原理让多个爬虫同时工作,当你掌握分布式爬虫,实现大规模并发采集后,自动化数据获取会更便利。

爬虫学习的书籍可以去看看这本:《python网络爬虫开发实战》

这本书涵盖面较广,爬虫入门到一些比较高级的比如验证码识别、分布式爬虫、专用框架都写得很详细。

所以学完它满足一些基本需求不成问题了,比如批量下载图片、手机app抓包等等。

当你每个步骤都能做到很优秀的时候,你应该考虑如何使你的爬虫达到效率最高,也就是所谓的爬虫策略问题。

爬虫策略学习不是一朝一夕的事情,建议多看看一些比较优秀的爬虫的设计方案。

Python经验分享

学好 Python 不论是就业数据分析还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助

Python学习路线

学习软件

学习视频

100道练习题

实战案例

上面这份完整版的Python全套学习资料已经上传至CSDN官方,朋友如果需要可以直接微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。

    以上就是本篇文章【【学习教程系列】最通俗的 Python3 网络爬虫入门】的全部内容了,欢迎阅览 ! 文章地址:http://fabua.ksxb.net/news/4608.html 
     文章      相关文章      动态      同类文章      热门文章      栏目首页      网站地图      返回首页 海之东岸资讯移动站 http://fabua.ksxb.net/mobile/ , 查看更多   
最新文章
消失的手机:曾经的模块化鼻祖,外观设计大师退出市场模块化手机「消失的手机:曾经的模块化鼻祖,外观设计大师退出市场」
在智能手机全面向触屏时代迈进以后,大约在2013年-2016年之间,国内的智能手机品牌可以说是百花齐放,国产智能手机品牌很多也是
华硕手机应用商店手机应用商城「华硕手机应用商店」
华硕手机应用商店是一个方便、快捷且易于使用的软件应用商店。在华硕手机应用商店中,您可以根据您要下载的软件类别进行,相应的
堪比职业玩家的电竞体验,vivo S7游戏魔盒竟有如此妙用vivo游戏手机「堪比职业玩家的电竞体验,vivo S7游戏魔盒竟有如此妙用」
玩游戏,讲究的不仅仅只是技术,主要离不开的还是硬件设备的支持。大家平日里用玩游戏总会觉得不过瘾。有的时候,欠缺的未必是技
美防长敦促日本强化防卫能力
参考消息网3月31日报道 据《日本经济新闻》3月30日报道,30日,日本防卫相中谷元在防卫省与来访的美国国防部长赫格塞思举行特朗
短剧人抱团出海,争抢唯一确定的增量
文 | 新声Pro,作者 | 王珊珊(北京)「我们整个公司的重心,包括我个人的重心,现在都放在海外。」短剧出海厂牌 Crest Pte.Ltd
快速教你玩转手机备忘录手机备忘录「快速教你玩转手机备忘录」
手机中有一个叫“备忘录”的APP,大家应该经常会用到,对这个功能应该也不陌生了,这里就说说几个大家有可能未发现的功能,用起
佛经上说释迦牟尼佛有三十二相,具体是哪些相?佛手机「佛经上说释迦牟尼佛有三十二相,具体是哪些相?」
佛教,就是佛陀的教育。我们在经上常常看到说,释迦牟尼佛有三十二相,这些相也是为表法所用,代表圆满到极处。每一种相都是由一
A股的估值现在贵不贵?
伴随“四月决断”的到来,市场风格逐渐从题材投资回归价值投资,而价值投资的一大核心理念就在于股价和企业基本面的适配程度——
劳力士都不保值了?为啥奢侈品手表都不值钱了?
在世界奢侈品市场上,有一类奢侈品被视为保值增值的标的,比如说大名鼎鼎的爱马仕和香奈儿的香包,再比如说知名的奢侈品手表劳力
《不思异:志怪》大结局意犹未尽,“中式志怪”细节拉满
由搜狐视频出品,兔狲文化制作,出品人张朝阳,总制片人曹迪、邱其虎,席文婷执导,袁哲总编剧,何昶希、赵嘉敏、袁梓铭、薛卉葳