数据是创造和决策的原材料,高质量的数据都价值不菲。而利用爬虫,可以获取大量的价值数据,经分析可以发挥巨大的价值,比如:
豆瓣、知乎:爬取优质答案,筛选出各话题下热门内容,探索用户的舆论导向。
淘宝、京东:抓取商品、评论及销量数据,对各种商品及用户的消费场景进行分析。
搜房、链家:抓取房产买卖及租售信息,分析房价变化趋势、做不同区域的房价分析。
拉勾、智联:爬取各类职位信息,分析各行业人才需求情况及薪资水平。
雪球网:抓取雪球高回报用户的行为,对股票市场进行分析和预测。
爬虫是入门Python
最好的方式。Python
有很多应用方向,比如后台开发、web
开发、科学计算等等,但爬虫对于初学者而言更友好,原理简单,几行代码就能实现基本的爬虫,学习的过程更加平滑。
掌握基本的爬虫后,再去学习Python
数据分析、web
开发甚至机器学习,都会更得心应手。
学习Python包并实现基本的爬虫过程
大部分爬虫都是按“发送请求——获得页面——解析页面——抽取并储存内容”这样的流程来进行,这其实也是模拟了使用浏览器获取网页信息的过程。
Python
中爬虫相关的包很多:urllib
、requests
、bs4
、scrapy
、pyspider
等,建议从requests+Xpath
开始,requests
负责连接网站,返回网页,Xpath
用于解析网页抽取数据。
如果用过BeautifulSoup
,会发现比Xpath
要省事不少,一层一层检查元素代码的工作全都省略了。
应对特殊网站的反爬措施
爬虫过程中会遇到被网站封IP、各种奇怪的验证码、userAgent
访问限制、各种动态加载等等问题,遇到这些反爬虫的手段,当然还需要一些高级的技巧来应对,常规的比如访问频率控制、使用代理IP
池、抓包、验证码的OCR
处理等等。
往往网站在高效开发和反爬虫之间会偏向前者,这也为爬虫提供了空间,掌握这些应对反爬虫的技巧,绝大部分的网站已经难不到你了。
scrapy搭建工程化的爬虫
scrapy
是一个功能非常强大的爬虫框架,它不仅能便捷地构建request
,还有强大的selector
能够方便地解析response
,然而它最让人惊喜的还是它超高的性能,让你可以将爬虫工程化、模块化。
应对大规模数据存储
爬回来的数据量小的时候,可以用文档的形式来存储,一旦数据量大了,这就有点行不通了,所以掌握一种数据库是必须的。
MongoDB
可以方便去存储一些非结构化的数据,比如各种评论的文本,图片的链接等等。也可以利用PyMongo
,更方便地在Python
中操作MongoDB
。
分布式爬虫实现大规模并发采集
利用多线程的原理让多个爬虫同时工作,需要掌握Scrapy + MongoDB + Redis
这三种工具。Scrapy
用于做基本的页面爬取,MongoDB
用于存储爬取的数据,Redis
则用来存储要爬取的网页队列,也就是任务队列。
当能够写分布式爬虫的时候,那么可以去尝试打造一些基本的爬虫架构,实现一些更加自动化的数据获取。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。