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