c爬虫抓取网页数据(零基础快速入门的学习路径——Python中爬虫相关)

优采云 发布时间: 2021-10-23 08:11

  c爬虫抓取网页数据(零基础快速入门的学习路径——Python中爬虫相关)

  参考视频教程:

  **Python爬虫工程师从入门到高级**

  

  图片

  互联网上的数据爆炸式增长,使用Python爬虫我们可以获得很多有价值的数据:

  1. 爬取数据,进行市场调研和商业分析

  抓取知乎优质回答,筛选每个话题下的最佳内容;爬取房产网站交易信息,分析房价走势,做不同区域的房价分析;爬取招聘网站 职位信息,分析各行业的人才需求和薪资水平。

  2.作为机器学习和数据挖掘的原创数据

  比如你想做一个推荐系统,那么你可以爬取更多维度的数据,做一个更好的模型。

  3. 爬取优质资源:图片、文字、视频

  爬取商品(店铺)评论和各种图片网站,获取图片资源和评论文字数据。

  掌握正确的方法能够在短时间内抓取主流网站数据,其实很容易实现。

  但建议您从一开始就有一个特定的目标。在目标的驱动下,您的学习将更加精准和高效。这是一个平滑的、从零开始的快速入门学习路径:

  1.了解爬虫的基本原理和流程

  2.Requests+Xpath实现一般爬虫例程

  3.理解非结构化数据的存储

  4.应对特殊的网站反爬虫措施

  5.Scrapy 和 MongoDB,高级分布式

  大多数爬虫都遵循“发送请求-获取页面-解析页面-提取并存储内容”的过程。这实际上模拟了使用浏览器获取网页信息的过程。

  简单的说,我们向服务器发送请求后,会得到返回的页面。解析完页面后,我们就可以提取出我们想要的那部分信息,存放在指定的文档或数据库中。

  这部分可以简单的了解一下HTTP协议和网页的基础知识,比如POST\GET、HTML、CSS、JS,简单了解一下,无需系统学习。

  Python中有很多爬虫相关的包:urllib、requests、bs4、scrapy、pyspider等,建议从requests+Xpath入手。Requests 负责连接到 网站 并返回网页。Xpath 用于解析网页以方便提取数据。

  如果你用过 BeautifulSoup,你会发现 Xpath 省去了很多麻烦。逐层检查元素代码的工作全部省略。掌握了之后,你会发现爬虫的基本套路都差不多。一般静态 网站 根本不是问题。小猪,豆瓣,尴尬百科,腾讯新闻等基本都可以用。

  我们来看一个爬取豆瓣短评论的例子:

  

  图片

  选择第一条短评论,右键-》勾选,即可查看源码

  

  图片

  复制短评论信息的XPath信息

  

  图片

  通过定位,我们得到了第一个短评论XPath信息:

  

  图片

  如果我们想抓取大量的短评论,那么自然我们应该得到(复制)更多这样的XPath:

  

  图片

  观察第3条短注释1、2、的XPath,你会发现模式,只是后面的序号不同,正好对应短注释的序号。那么如果我们想抓取这个页面上的所有短评论信息,那么就不需要这个序列号了。

  通过XPath信息,我们可以用简单的代码爬下来:

  

  图片

  

  图片

  该页面的所有短评论信息都被爬取了

  当然,如果你需要爬取异步加载的网站,可以学习浏览器抓包来分析真实请求,或者学习Selenium来实现自动爬取。这样,知乎、、TripAdvisor等网站基本没问题。

  您还需要了解 Python 的基础知识,例如:

  文件读写操作:用于读取参数和保存爬取的内容

  list(列表)、dict(字典):用于对爬取的数据进行序列化

  条件判断(if/else):解决爬虫中的判断是否执行

  循环和迭代(for ……while):用于循环爬虫步骤

  爬回来的数据可以直接以文档的形式存储在本地,也可以存储在数据库中。

  当数据量较小时,可以直接通过Python语法或pandas方法将数据保存为文本或csv文件。继续上面的例子:

  使用Python基础语言实现存储:

  

  图片

  使用pandas语言来存储:

  

  图片

  这两段代码都可以存储爬取的短评论信息,并将代码粘贴到爬取代码的后面。

  

  图片

  为该页面存储的短评论数据

  当然,你可能会发现爬回来的数据不干净,可能有缺失、错误等,你也需要清理数据,可以学习pandas包,掌握以下知识点:

  缺失值处理:删除或填充缺失数据行

  重复值处理:判断和删除重复值

  空格和异常值的处理:清除不必要的空格和极端和异常数据

  数据分组:数据划分、功能分开执行、数据重组

  爬取一页的数据没问题,但是我们通常要爬取多个页面。

  这时候就需要看看翻页时url是如何变化的,或者以短评论页面为例,我们来看看多页url的区别:

  

  图片

  通过前四页,我们可以找到图案,不同的页面,但页面的序号被标记在最后。以抓取5个页面为例,只写一个循环更新页面地址即可。

  

  图片

  当然,爬取过程中也会有一些绝望,比如被网站屏蔽,比如各种奇怪的验证码,userAgent访问限制,各种动态加载等等。

  遇到这些反爬虫方法,当然需要一些高级技巧来应对,比如访问频率控制、代理IP池的使用、抓包、验证码的OCR处理等等。

  比如我们经常发现有些网站的URL在翻页后没有变化,通常是异步加载。我们使用开发者工具分析页面加载信息,通常可以获得意想不到的收获。

  

  图片

  通过开发者工具分析加载的信息。比如我们发现网页无法通过代码访问,我们可以尝试添加userAgent信息,甚至浏览器的cookie信息。

  往往网站在高效开发和反爬虫之间偏向于前者,这也为爬虫提供了空间。掌握这些反爬虫技巧,大部分网站对你来说不再难。

  Scrapy 和 MongoDB,高级分布式

  掌握了之前的技术,一般量级的数据和代码基本没有问题,但是在非常复杂的情况下,可能还是做不到自己想做的。这时候,强大的scrapy框架就非常有用了。

  Scrapy 是一个非常强大的爬虫框架。它不仅可以方便地构造请求,还拥有强大的选择器,可以轻松解析响应。不过,最让人惊喜的是它的超高性能,可以让你设计爬虫。,模块化。

  

  图片

  出租信息的分布式爬取

  需要爬取的数据量很大,自然需要一个数据库。MongoDB 可以方便您存储*敏*感*词*数据。因为这里要用到的数据库知识其实很简单,主要是如何存储数据,如何提取,需要的时候学习。

  

  图片

  MongoDB 存储作业信息

  分布式这个东西听起来很吓人,但实际上,它是利用多线程的原理,让多个爬虫同时工作。你需要掌握Scrapy+MongoDB+Redis这三个工具。

  Scrapy用于基本的页面爬取,MongoDB用于存储爬取的数据,Redis用于存储待爬取的网页队列,即任务队列。

  这时候就已经可以写分布式爬虫了。

  你看,有了这个学习路径,你已经可以成为一个老司机了,非常顺利。所以一开始尽量不要系统地啃东西,找个实际的项目(可以从豆瓣、小猪等简单的东西开始),直接开始。

  因为爬虫技术不需要你系统地精通一门语言,也不需要非常先进的数据库技术。高效的姿势就是从实际项目中学习这些零散的知识点,保证每次都能学到。是最需要的部分。

  当然,唯一的麻烦是在具体问题中,如何找到具体需要的那部分学习资源,如何筛选筛选,是很多初学者面临的一大难题。

  不过不用担心,我们准备了非常系统的爬虫课程。除了为您提供清晰的学习路径,我们精选了最实用的学习资源和海量的主流爬虫案例库。在很短的学习时间内,你将能够很好地掌握爬虫技巧,得到你想要的数据。

  《Python爬虫:入门+进阶》大纲

  第 1 章:Python 爬虫入门

  1、什么是爬虫

  URL组合和翻页机制

  网页源码结构及网页请求流程

  爬虫的应用及基本原理

  2、认识Python爬虫

  Python爬虫环境搭建

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线