如何写爬虫
由于不同语言对于爬虫的生态不同,导致选择不同语言去实现同样的爬虫目标,难度也差异很大。
类比来解释:
- 目的:爬虫
- 就像 要建一个自己喜欢的房子
- 不同语言难度
- Python
- 已有:
- 建房子:给你建好了房子,且还搞好了硬装,有了基本的家具等
- 爬虫
- 生态极其丰富和强大
- 单独的库
- 下载
- 网络库
- requests
- 网络库
- 提取
- 正则re
- xpath
- BeautifulSoup
- PyQuery
- 等
- 下载
- 爬虫框架
- Scrapy
- PySpider
- 等
- 单独的库
- 生态极其丰富和强大
- 需要你:
- 建房子:简单弄弄软装,就可以得到你喜欢的房子
- 爬虫
- 只需要分析网页内容加载逻辑,搞清楚规则
- 再去用Python代码实现这些规则和逻辑,即可
- 已有:
- 其他语言
- 已有
- 建房子
- 不仅没硬装,往往也没房子
- 甚至连钢筋水泥和沙子等原材料都没有
- 不仅没硬装,往往也没房子
- 爬虫
- 不同的语言,对于网络相关库、解析相关库等等,都有一定程度的支持
- 但往往不够好,具体情况差异很大
- 对于其他编程语言,用来开发爬虫的生态和便利性,个人总体感觉是:
C#
>Go
>Java
>PHP
- 不同的语言,对于网络相关库、解析相关库等等,都有一定程度的支持
- 建房子
- 需要你:
- 建房子
- 需要你从头做起去建房子
- 自己开车采购钢筋水泥沙子等原材料
- 然后找人开始建房子
- 把房子建好后
- 才能开始硬装
- 最后软装
- 做出你喜欢的房子
- 需要你从头做起去建房子
- 爬虫
- 很多时候都没有很好的轮子可用,导致爬虫方面开发效率很低
- 往往要了解http网络库的机制,甚至自己裸写代码,才能实现http层面的网页源码的下载
- 然后再去解析源码,期间甚至还要关注html字符编码的问题,才能提取出你要的内容
- 很多时候都没有很好的轮子可用,导致爬虫方面开发效率很低
- 建房子
- 已有
- Python
旧教程
之前写过一些旧教程,需要的也可以参考: