本篇有点长,请耐心看完!
如果学会了python的基本语法,我认为入门爬虫是很容易的。
我写的第一个爬虫大概只需要10分钟,自学的 scrapyd , 看官方文档花了20分钟,
因为我英文不是很好,很多单词需要搜索一下。
官方文档链接 :https://docs.scrapy.org/en/latest/intro/tutorial.html
(scrapy 并不是入门必须的,所以你可以看完我的答案再酌情考虑 scrapy )
再接触到了 requests , lxml ,配合基本库 urllib, urllib2 就几乎无所不能了。
后来有人推荐我用 BeatufulSoup 之类的库,但其实原理都差不多。
![9685567be7cfa73be95b672349fd4d36.png](https://i-blog.csdnimg.cn/blog_migrate/50ce4a54af8d02a5b4f55596785820a1.jpeg)
一、入门爬虫的干货
0. 爬虫的基本思路
a. 通过URL或者文件获取网页,
b. 分析要爬取的目标内容所在的位置
c. 用元素选择器快速提取(Raw) 目标内容
d. 处理提取出来的目标内容 ( 通常整理合成一个 Json)
e. 存储处理好的目标内容 (比如放到 MongoDB 之类的数据库,或者写进文件里。)
![30d34b7f9e855dc549be17ef115fc705.png](https://i-blog.csdnimg.cn/blog_migrate/d074cc26a6672403d3def7284c420ec6.jpeg)
嗨喽:正在学习python的小伙伴或者打算学习的,可以私信小编“01”领取资料!
1. 为什么我入门爬虫那么快
我自己总结了一下,在接触爬虫之前:
a. 我挺了解HTTP 协议(看了《HTTP权威指南》),
b. 我写过基于Flask框架的后端
c. 我写过前端(HTML+CSS+JS),了解什么是DOM ,会一点jquery。
d. 正则也是勉强够用的。
e. 本人大学也是计算机专业,学习挺认真的。
2. 那么毫无专业基础,也没有前后端基础的人应该怎么办?
答:那当然要超过半小时啦。先花点时间去大概了解以下内容:
a. HTTP协议的请求方法,请求头部,请求数据
b. 大概了解一下什么是 cookie
c. 学一点HTML和元素选择器
d. 学会使用Chrome 的 开发者工具
磨刀不误砍柴工,当然如果有人带着,这些大概1-2小时就能过到能凑合用的程度了。如果没人带,就上网搜索学习一下,也很快的,估摸最多十小时。
![4285f2315704d68f2cbc680b1ecd99cd.png](https://i-blog.csdnimg.cn/blog_migrate/0f427598f7a40b67f5f33aff64865625.jpeg)
3. Python 爬虫常用的库是哪些?入门应该掌握哪些库?
答:网上有很多相关的资料,但是我个人觉得新入门的人,不需要也不应该一下子接触所有的库。正如幼儿刚开始学说话的时候,不应该同时教普通话粤语闽南语英语。
我个人认为,学会 requests 和 lxml ,就可以入门爬虫了。
其他的常用库,自己搜,但注意贪多嚼不烂。
4、一点点涉及爬虫进阶的分界线
4.1:很多爬虫代码,一个函数几十行,是很不好的。应该尽量减少重复代码。
1. 重要的事情说三次,
函数不是越长越好, 好代码应该简单易懂好维护!
函数不是越长越好, 好代码应该简单易懂好维护!
函数不是越长越好, 好代码应该简单易懂好维护!
4.2. Scrapy + MongoDB + Redis 分布式爬虫系统其实不复杂。
a). Redis 用来存储要爬取的网页队列,也就是任务队列
b). MongoDB 用来存储爬取的内容结果。
c) . Scrapy 里放爬虫crawler , 分别爬取不同的网页内容,
ps:分布式这个东西,听起来很恐怖,但是拆开了也就这样。所以不用害怕。
最后多说一句,小编是一名python开发工程师,这里有我自己整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。想要这些资料的可以关注小编,并在后台私信小编:“01”即可领取