什么是网络爬虫?
爬虫能干什么
爬虫很简单
爬虫也不简单
爬虫知识储备路线
总结+学习资料
爬虫,又称为网页蜘蛛(spider),就是能够在互联网中检索自己需要的信息的程序或脚本。
爬虫,简单的说就是一个http(https)请求,获取到对面网页的源码,然后从网页的源码中抓取自己需要的信息。而html代码的规则是基于xml的,所以可以通过一定解析规则和逻辑完成我们的数据。
爬虫能干的事情比较多,并且有些领域和爬虫都有很大的关联。不同深度,技术的爬虫工作者能干的事情也不同。
搜索引擎
抢票、刷票等自动化软件
部分破解软件
金融等行业数据挖掘、分析数据来源
其他
就拿一个csdn的个人主页来说https://blog.csdn.net/qq_40693171
语言的选择
对于python爬虫常用的库有
至于框架,scrapy流行。就不介绍
对于java爬虫常用的库有
至于框架,java的框架比较多,但是流行度却没python的scrapy高。自己可以查询各种框架进行对比。当然自己也可以使用spring+mybatis进行封装。如果项目比较大。
两种语言的小demo
对于上面的主页,如果用python来完成数据提取
运行结果
如果用java来完成
运行结果
这样,一个简单的爬虫就完成了。是否勾起你对爬虫的兴趣?
爬虫与反爬虫的斗争由此开始。
ip、浏览器头(User-Agent)、和cookie限制
一个http请求要携带很多头信息带给后台,后台也能够获取这些信息。那百度的首页打开F12刷新
需登录的验证码限制、参数限制
有很多数据是开放可以查看的,但是也有很多数据需要注册登录之后才能查看数据的,比如国内的各大招聘网站都需要你先登录然后才能爬取。
对于普通验证码来说,你大致有四个选择。
而对于滑块以及其他奇葩如滑块,点选等等,那你要么借助第三方,要么就是自己研究其中js运转流程。以及交付方式。算法原理,还是很复杂的。笔者这部分也不是特别了解。只是略知一二。
不仅如此,在登录环节,往往还会遇到一些其他参数的会放到JavaScript里面,这需要你抓到比较。有的还会针对你的数据进行加密传到后台。这就需要你娴熟的js解密能力了。
JavaScript渲染/ajax加密
虽然一些高难度的爬虫确实很难,没有一定的工作经验和时间研究确实很难变强。但是我们还是能够通过掌握一些大众知识能够满足生活、学习的日常需求和创意。
1.基础语法:
2.正则和爬虫相关库,以及浏览器F12抓包和Fidder等抓包工具抓包
3.扎实的语法
4. 多线程、数据库、线程安全相关知识。
5. 分布式的概念和知识。
6. js进阶、逆向等知识.
另外,如果文章有说的不好的地方还请大佬指出。我也写过一些爬虫和笔记、还有许多学习资源。如果需要可以参考私聊我。
欢迎关注我的头条号(一直码农一直爽)或者微信公众号(bigsai)。进行交流。