刚开始接触爬虫的时候,简直惊为天人,十几行代码,就可以将无数网页的信息全部获取下来,自动选取网页元素,自动整理成结构化的文件。

利用这些数据,可以做很多领域的分析、市场调研,获得很多有价值的信息。这种技能不为我所用实在可惜,于是果断开始学习。

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

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

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

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

- -开始直接上手

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

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

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

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

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

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

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

用 BeautifulSoup 爬取豆瓣电影详情

- -爬虫渐入佳境

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

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

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

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

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

- -跟反爬虫杠上了

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

为什么用python写爬虫_零基础,是怎么开始写Python爬虫的相关推荐

  1. 小白到学会python要多久_零基础小白多久能学会python

    学习任何一门编程语言,都是为了去实现一个个项目,来解决实际的问题.无论项目是大还是小,都关联着许多知识与技能. 例如要写一个「文件资源管理器」的应用,就需要MVC设计模式.组件化构建.对象集合及操作. ...

  2. 类似零基础学python的小说_零基础小白十分钟用Python搭建小说网站!Python真的强!...

    零基础小白十分钟用Python搭建小说网站!Python真的强!-1.jpg (128.29 KB, 下载次数: 0) 2018-10-8 18:51 上传 Python 和放大镜的二进制代码 人生苦 ...

  3. python打字机效果_零基础手把手教你用Python做一个怀旧打字机

    忙碌的生活和飞速发展的科技正改变着人们的阅读习惯,为了"增加效率",文章只看标题,视频10秒刷走.是不是有这么一种感觉,一个小时内看遍世间繁华

  4. 入门Python难不难?零基础到底要怎么学Python?

    近几年的Python编程发展得非常好,又因为人工智能的发展而发展.入门Python难不难?零基础到底要怎么学Python?本文,小分享入门Python需要掌握的知识. 1.数据库:Python在数据库 ...

  5. python问题分享_零基础入门Python常见问题分享

    零基础入门Python常见问题有哪些?作为经常混迹在各大Python技术论坛的小编而言,见到最多的话题就是:学习Python难不难?零基础可以学习Python吗?如何学习Python?等等.今天小编就 ...

  6. python如何编程-编程零基础应当如何开始学习 Python?

    这个问题下面这么多人推荐了这么多 Python 资源,估计零基础新手看到了会眼花缭乱吧. 作为非计算机专业出身.自学编程的过来人,我知道想找到一份适合自己的入门教程不容易.不如就在这里分享一下,如何鉴 ...

  7. python入门需要多久-零基础小白多久能学会python

    学习任何一门编程语言,都是为了去实现一个个项目,来解决实际的问题.无论项目是大还是小,都关联着许多知识与技能. 例如要写一个「文件资源管理器」的应用,就需要MVC设计模式.组件化构建.对象集合及操作. ...

  8. 零基础学python知乎-编程零基础应当如何开始学习 Python?

    这个问题下面这么多人推荐了这么多 Python 资源,估计零基础新手看到了会眼花缭乱吧. 作为非计算机专业出身.自学编程的过来人,我知道想找到一份适合自己的入门教程不容易.不如就在这里分享一下,如何鉴 ...

  9. 想学python怎么学习_没有基础的想转行学习Python怎么学

    原标题:没有基础的想转行学习Python怎么学 无意中听朋友说:Python是一门神奇的语言 ,他建议我去学习Python,因为 Python 作为一门高级语言,通俗易懂,所以我就锁定了目标--学 P ...

  10. 手机写python爬虫_零基础开始写Python爬虫心得

    零基础学习爬虫,坑确实比较多,总结如下: 1.环境配置,各种安装包.环境变量,对小白太不友好: 2.缺少合理的学习路径,上来 Python.HTML 各种学,极其容易放弃: 3.Python有很多包. ...

最新文章

  1. 拥抱单页网站! jQuery全屏滚动插件fullPage.js
  2. 变量 || 数据类型
  3. Django startproject的问题
  4. 【Linux】一步一步学Linux——echo命令(203)
  5. java中的exception stack有时候不输出的原因
  6. 当Grid的数据源是View时,如何使用PeopleSoft自带的Save Function?
  7. 以后可能用到的一些OQL
  8. apache代理IIS的80端口实现共存
  9. 转:ubuntu或linux网卡配置/etc/network/interfaces
  10. 关于ssm框架的全部整合(一) 2021.05.09
  11. 【渝粤教育】电大中专金融与税收_1作业 题库
  12. MVC模式中Controller控制器为什么是Servlet?怎么理解?
  13. Firefox 无法播放视频
  14. skiplist及Java实现
  15. 几何向量:空间三角形内心
  16. 在linux下如何显示隐藏文件
  17. 解决wampserver server offline
  18. 孕妇睡眠质量差怎么办?如何提高睡眠质量?
  19. 机器学习之重温线性代数
  20. Windows 8 自带定时关机的4种实现方法

热门文章

  1. iphone开发之私有库private frameworks
  2. Python2.x还是3.x?
  3. [转载] 列表、元组及通用序列操作
  4. ruby中、.reject_Ruby中带有示例的Array.reject方法
  5. linux cnc_CNC的完整形式是什么?
  6. c ++向量库_将向量复制到C ++中的另一个向量
  7. 优先级调度算法动态优先级_与优先级调度有关的问题及其解决方案
  8. npm上传自己的项目
  9. 【MATLAB】Parzen窗与K近邻算法原理与代码详解
  10. Tensorflow No module named ‘tensorflow.examples.tutorials‘解决办法,有用