我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何零基础开始写Python爬虫

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何零基础开始写Python爬虫

本篇内容主要讲解“如何零基础开始写Python爬虫”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何零基础开始写Python爬虫”吧!

- ❶ -并非开始都是最容易的

刚开始对爬虫不是很了解,又没有任何的计算机、编程基础,确实有点懵逼。从哪里开始,哪些是最开始应该学的,哪些应该等到有一定基础之后再学,也没个清晰的概念。

因为是 Python 爬虫嘛,Python 就是必备的咯,那先从 Python 开始吧。于是看了一些教程和书籍,了解基本的数据结构,然后是列表、字典、元组,各种函数和控制语句(条件语句、循环语句)。

学了一段时间,才发现自己还没接触到真正的爬虫呢,而且纯理论学习很快就忘了,回去复习又太浪费时间,简直不要太绝望。把 Python 的基础知识过了一遍之后,我竟然还没装一个可以敲代码的IDE,想想就哭笑不得。

- ❷ -开始直接上手

转机出现在看过一篇爬虫的技术文章后,清晰的思路和通俗易懂的语言让我觉得,这才是我想学的爬虫。于是决定先配一个环境,试试看爬虫到底是怎么玩的。(当然你可以理解为这是浮躁,但确实每个小白都想去做直观、有反馈的事情)

因为怕出错,装了比较保险的 Anaconda,用自带的 Jupyter Notebook 作为IDE来写代码。看到很多人说因为配置环境出各种BUG,简直庆幸。很多时候打败你的,并不是事情本身,说的就是爬虫配置环境这事儿。

遇到的另一个问题是,Python 的爬虫可以用很多包或者框架来实现,应该选哪一种呢?我的原则就是是简单好用,写的代码少,对于一个小白来说,性能、效率什么的,统统被我 pass 了。于是开始接触 urllib、美丽汤(BeautifulSoup),因为听别人说很简单。

我上手的***个案例是爬取豆瓣的电影,无数人都推荐把豆瓣作为新手上路的实例,因为页面简单且反爬虫不严。照着一些爬取豆瓣电影的入门级例子开始看,从这些例子里面,了解了一点点爬虫的基本原理:下载页面、解析页面、定位并抽取数据。

当然并没有去系统看 urllib 和 BeautifulSoup 了,我需要把眼前实例中的问题解决,比如下载、解析页面,基本都是固定的语句,直接用就行,我就先不去学习原理了。

如何零基础开始写Python爬虫

用 urllib 下载和解析页面的固定句式

当然 BeautifulSoup 中的基本方法是不能忽略的,但也无非是 find、get_text() 之类,信息量很小。就这样,通过别人的思路和自己查找美丽汤的用法,完成了豆瓣电影的基本信息爬取。

如何零基础开始写Python爬虫

用 BeautifulSoup 爬取豆瓣电影详情

- ❸ -爬虫渐入佳境

有了一些套路和形式,就会有目标,可以接着往下学了。还是豆瓣,自己去摸索爬取更多的信息,爬取多部电影,多个页面。这个时候就发现基础不足了,比如爬取多个元素、翻页、处理多种情况等涉及的语句控制,又比如提取内容时涉及到的字符串、列表、字典的处理,还远远不够。

再回去补充 Python 的基础知识,就很有针对性,而且能马上能用于解决问题,也就理解得更深刻。这样直到把豆瓣的TOP250图书和电影爬下来,基本算是了解了一个爬虫的基本过程了。

BeautifulSoup 还算不错,但需要花一些时间去了解一些网页的基本知识,否则一些元素的定位和选取还是会头疼。

后来认识到 xpath 之后相见恨晚,这才是入门必备利器啊,直接Chrome复制就可以了,指哪打哪。即便是要自己写 xpath,以w3school上几页的 xpath 教程,一个小时也可以搞定了。requests 貌似也比 urllib 更好用,但摸索总归是试错的过程,试错成本就是时间。

如何零基础开始写Python爬虫

requests+xpath 爬取豆瓣TOP250图书信息

- ❹ -跟反爬虫杠上了

通过 requests+xpath,我可以去爬取很多网站网站了,后来自己练习了小猪的租房信息和当当的图书数据。爬拉勾的时候就发现问题了,首先是自己的请求根本不会返回信息,原来要将自己的爬虫伪装成浏览器,终于知道别人代码中那一坨 headers 信息是干啥的了?。

如何零基础开始写Python爬虫

在爬虫中添加 headers 信息,伪装成真实用户

接着是各种定位不到元素,然后知道了这是异步加载,数据根本不在网页源代码中,需要通过抓包来获取网页信息。于是在各种 JS、XHR的文件中 preview,寻找包含数据的链接。

当然知乎还好,本身加载的文件不多,找到了 json 文件直接获取对应的数据。(这里要安利一个chrome插件:jsonview,让小白轻松看懂 json 文件)

如何零基础开始写Python爬虫

浏览器抓取 JavaScript 加载的数据

在这里就对反爬虫有了认识,当然这还是最基本的,更严格的IP限制、验证码、文字加密等等,可能还会遇到很多难题。但是目前的问题能够解决不就很好了吗,逐个击破才能更高效地学习。

比如后来在爬其他网站的时候就被封了IP,简单的可以通过 time.sleep() 控制爬取频率的方法解决,限制比较严格或者需要保证爬取速度,就要用代理IP来解决。

当然,后来也试了一下 Selenium,这个就真的是按照真实的用户浏览行为(点击、搜索、翻页)来实现爬虫,所以对于那些反爬虫特别厉害的网站,又没有办法解决,Selenium 是一个超级好用的东东,虽然速度稍微慢点。

- ❺ -尝试强大的 Scrapy 框架

有了 requests+xpath 和抓包大法,就可以做很多事情了,豆瓣各分类下的电影,58同城、知乎、拉勾这些网站基本都没问题。不过,当爬取的数据量级很大,而且需要灵活地处理各个模块的话,会显得很力不从心。

于是了解到强大的 Scrapy 框架,它不仅能便捷地构建 Request,还有强大的 Selector 能够方便地解析 Response,然而最让人惊喜的还是它超高的性能,可以将爬虫工程化、模块化。

如何零基础开始写Python爬虫

Scrapy 框架的基本组件

学会 Scrapy,自己去尝试搭建了简单的爬虫框架,在做大规模数据爬去的时候能够结构化、工程化地思考大规模的爬取问题,这使我可以从爬虫工程的维度去思考问题。

当然 Scrapy 本身的 selector 、中间件、spider 等会比较难理解,还是建议结合具体的例子,参考别人的代码,去理解其中实现的过程,这样能够更好地理解。

如何零基础开始写Python爬虫

用 Scrapy 爬取了大量租房信息

- ❻ -本地文件搞不动了,上数据库

爬回来大量的数据之后就发现,本地的文件存起来非常不方便,即便存下来了,打开大文件电脑会卡得很严重。怎么办呢?果断上数据库啊,于是开始入坑 MongoDB。结构化、非结构化的数据都能够存储,安装好 PyMongo,就可以方便地在 Python 中操作数据库了。

MongoDB 本身安装会比较麻烦,如果自己一个人去折腾,很有可能会陷入困境。刚开始安装的时候也是出现各种BUG,幸得大神小X指点,解决了很多问题。

当然对于爬虫这一块,并不需要多么高深的数据库技术,主要是数据的入库和提取,顺带掌握了基本的插入、删除等操作。总之,能够满足高效地提取爬下来的数据就OK了。

如何零基础开始写Python爬虫

爬取拉勾招聘数据并用 MongoDB 存储

- ❼ -传说中的分布式爬虫

这个时候,基本上很大一部分的网页都能爬了,瓶颈就集中到爬取大规模数据的效率。因为学了 Scrapy,于是自然地接触到一个很厉害的名字:分布式爬虫。

分布式这个东西,一听不明觉厉,感觉很恐怖,但其实就是利用多线程的原理让多个爬虫同时工作,除了前面学过的 Scrapy 和 MongoDB,好像还需要了解 Redis

Scrapy 用于做基本的页面爬取,MongoDB 用于存储爬取的数据,Redis 则用来存储要爬取的网页队列,也就是任务队列。

分布式这东西看起来很吓人,但其实分解开来,循序渐进地学习,也不过如此。

如何零基础开始写Python爬虫

分布式爬58同城:定义项目内容部分

零基础学习爬虫,坑确实比较多,总结如下:

环境配置,各种安装包、环境变量,对小白太不友好;

缺少合理的学习路径,上来 Python、HTML 各种学,极其容易放弃;

Python有很多包、框架可以选择,但小白不知道哪个更友好;

遇到问题甚至不知道如何描述,更不用说去寻找解决办法;

网上的资料非常零散,而且对小白不友好,很多看起来云里雾里;

有些东西看似懂了,但结果自己写代码还是很困难;

到此,相信大家对“如何零基础开始写Python爬虫”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

如何零基础开始写Python爬虫

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何零基础开始写Python爬虫

本篇内容主要讲解“如何零基础开始写Python爬虫”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何零基础开始写Python爬虫”吧!- ❶ -并非开始都是最容易的刚开始对爬虫不是很了解,又没有
2023-06-17

怎么从零开始编写Python爬虫脚本

本篇内容介绍了“怎么从零开始编写Python爬虫脚本”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!0.准备工作需要准备的东西: Python
2023-06-03

零基础怎么学习Python爬虫

本篇内容主要讲解“零基础怎么学习Python爬虫”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“零基础怎么学习Python爬虫”吧!  零基础如何学爬虫技术?对于迷茫的初学者来说,爬虫技术起步学习
2023-06-01

零基础如何快速学习好Python网络爬虫

Python网络爬虫上手很快,能够尽早入门,可是想精通确实是需求些时间,需求达到爬虫工程师的级别更是需求煞费苦心了,接下来共享的学习道路是针对小白或许学习Python网络爬虫不久的同伴们。学习网络爬虫能够分三步走,如果你是大神,请直接绕走,
2023-01-31

经验分享:0基础如何学Python、爬虫

主要讲述转型的三个方面:web开发,爬虫,数据分析与人工智能Python的发展主要有几个方向:网络,爬虫,数据分析,测试,运维,人工智能等,要属当下最火的还是人工智能,好多人冲着人工智能的方向学python,其实人工智能听起来确实很高大上,
2023-01-31

零基础如何学Python

本篇内容主要讲解“零基础如何学Python”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“零基础如何学Python”吧!1、建立开发环境建立开发环境非常重要,。做任何开发,首先就是要把这个环境准备
2023-06-02

0基础应该怎么学Linux?Linux如何从零开始?

  在Linux学习路上,有很多朋友都是从0基础转行开始学的,那么,0基础应该怎么学Linux?如何从零开始?  练就扎实的基本功。  不管是学习什么语言,扎实的基本功都是必须的,俗话说“基础不牢,地动山摇”,牢固的基础可以提高效率,也可以
2023-06-05

如何从零基础开始建立PHP数据库连接

建立 php 数据库连接的步骤包括:配置 php 和数据库使用 mysqli 扩展:$conn = new mysqli($servername, $username, $password, $dbname)使用 pdo:$conn = n
如何从零基础开始建立PHP数据库连接
2024-05-21

零基础如何学python编程

对于零基础的初学者来说,学习Python编程需要遵循一定的步骤和方法。以下是一些建议,可以帮助您从零开始学习Python编程:1、了解编程基础:在学习编程之前,您需要了解一些编程基础概念,如编程语言、编程范式、算法和数据结构等。这些概念将帮
2023-10-25

零基础如何迅速学习python?

因为目前python非常火,应用非常的广泛,是目前最火的行业之一,竞争很大,工资很高,未来发展也极好。我个人建议:如条件还可以,负担不是那么大,可以选择培训,培训一定会比你自学的好,如果培训都学好,自学肯定更难。目前python的培训费用都
2023-06-02

零基础C#编写上位机如何入门

C#是一种由微软开发的面向对象的编程语言,它广泛应用于Windows操作系统和.NET框架中。上位机是一种用于控制和监控下位机的计算机,它可以接收和处理来自下位机的数据,并通过图形界面等方式向用户展示这些数据。在C#中编写上位机程序可以帮助
2023-10-27

从零开始学Python第八周:详解网络编程基础(socket)

一,Socket编程 (1)Socket方法介绍Socket是网络编程的一个抽象概念。通常我们用一个Socket表示“打开了一个网络链接“,而打开一个Socket需要知道目标计算机的IP地址和端口号,再指定协议类型即可。套接字是一个双向的通
2022-06-04

Python如何写出最简单的网页爬虫

Python如何写出最简单的网页爬虫,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。最近对python爬虫有了强烈地兴趣,在此分享自己的学习路径。1.开发工具笔者使用的工具是
2023-06-17

python培训之零基础如何学习pyth

老男孩python培训教你如何零基础学python根据TIOBE最新排名,Python已超越C#,与Java,C,C++成为全球前5大流行编程语言之一。从云端、客户端,到物联网终端,python应用无处不在。从国内的百度、阿里、腾讯、网易、
2023-01-31

零基础开发小程序商城如何接入

这篇文章主要介绍“零基础开发小程序商城如何接入”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“零基础开发小程序商城如何接入”文章能帮助大家解决问题。搭建小程序商城的最后一步,接入。一、获得帐号,两种方
2023-06-26

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录