文章目录
1.爬虫应用领域
在理想的状态下,所有ICP(Internet Content Provider)都应该为自己的网站提供API接口来共享它们允许其他程序获取的数据,在这种情况下爬虫就不是必需品,国内著名的电商平台(如淘宝、京东)社交平台(如腾讯微博)等网站都提供了自己的Open API,但是这类Open API会对可以抓取的数据以及抓取数据的频率进行限制。对于大多数的公司而言,及时的获取行业相关数据是企业生存的重要环节之一,然而大部分企业在行业数据方面的匮乏是其与生俱来的短板,合理的利用爬虫来获取数据并从中提取出有商业价值的信息是至关重要的。
当然爬虫还有很多重要的应用领域,下面列举了其中的一部分:
搜索引擎/新闻聚合/社交应用/舆情监控/行业数据
2.爬虫合法性探讨
- 网络爬虫领域目前还属于拓荒阶段,虽然互联网世界已经通过自己的游戏规则建立起一定的道德规范(Robots协议,全称是“网络爬虫排除标准”),但法律部分还在建立和完善中,也就是说,现在这个领域暂时还是灰色地带。
- “法不禁止即为许可”,如果爬虫就像浏览器一样获取的是前端显示的数据(网页上的公开信息)而不是网站后台的私密敏感信息,就不太担心法律法规的约束,因为目前大数据产业链的发展速度远远超过了法律的完善程度。
- 在爬取网站的时候,需要限制自己的爬虫遵守Robots协议,同时控制网络爬虫程序的抓取数据的速度;在使用数据的时候,必须要尊重网站的知识产权。
大多数网站都会定义robots.txt文件,淘宝的robots.txt文件为例,看看该网站对爬虫有哪些限制。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GPX7ktVL-1617861321208)(C:\Users\zt\AppData\Roaming\Typora\typora-user-images\image-20210407085932401.png)]
3.爬虫基本流程
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gWcLPE8U-1617861321211)(C:\Users\zt\AppData\Roaming\Typora\typora-user-images\image-20210407090045192.png)]
4.Request 和 Response
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UHAEDLX7-1617861321212)(C:\Users\zt\AppData\Roaming\Typora\typora-user-images\image-20210407090424382.png)]
5.网页结构
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZJgCROsw-1617861321214)(C:\Users\zt\AppData\Roaming\Typora\typora-user-images\image-20210407090519789.png)]
Request
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fuG1Ltfu-1617861321220)(C:\Users\zt\AppData\Roaming\Typora\typora-user-images\image-20210407090621859.png)]
基本的请求库:
urllib :python内置的HTTP请求库,不需要额外安装
https://blog.csdn.net/hy592070616/article/details/89843922
requests:在python内置模块的基础上进行了高度的封装,比urllib更简洁
https://blog.csdn.net/hy592070616/article/details/90046229
Response
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GGr786TS-1617861321222)(C:\Users\zt\AppData\Roaming\Typora\typora-user-images\image-20210407090757575.png)]
6.抓取的数据
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-woxR1Axp-1617861321223)(C:\Users\zt\AppData\Roaming\Typora\typora-user-images\image-20210407090827587.png)]
7.解析方式
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b4DvgnSE-1617861321223)(C:\Users\zt\AppData\Roaming\Typora\typora-user-images\image-20210407090856364.png)]
8.XPath
XPath,全称XML Path Language,即XML路径语言,它是一门在XML文档中查找信息的语言。它最初是用来搜寻XML文档的,但是它同样适用于HTML文档的搜索。所以在做爬虫时,我们完全可以使用XPath来做相应的信息抽取。
XPath的选择功能十分强大,它提供了非常简洁明了的路径选择表达式。另外,它还提供了超过100个内建函数,用于字符串、数值、时间的匹配以及节点、序列的处理等。几乎所有我们想要定位的节点,都可以用XPath来选择。
XPath常用规则
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-odpNhKfk-1617861321224)(C:\Users\zt\AppData\Roaming\Typora\typora-user-images\image-20210407091224518.png)]
XPath运算符
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-a5NaPC7T-1617861321224)(C:\Users\zt\AppData\Roaming\Typora\typora-user-images\image-20210407091248536.png)]
9.保存数据
224)]
XPath运算符
[外链图片转存中…(img-a5NaPC7T-1617861321224)]
9.保存数据
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h05CoXOi-1617861321225)(C:\Users\zt\AppData\Roaming\Typora\typora-user-images\image-20210407091321303.png)]