在爬虫心得和笔记(一)中,笔者介绍了爬虫的基本逻辑是什么和爬虫适用于那些场景以及爬虫的优缺点。对于爬虫以及很多工作来说,都是需要经过很多的练习和不断的踩坑才能精进成为,专业的工作者,这也是笔者为什么想写这个爬虫心得和笔记的原因,那么在这一篇文章中,笔者将对笔者之前学过的用过的,适合用于爬虫的语言和工具进行介绍。
1.JAVA
JAVA是一门非常热门的编程语言,笔者初入计算机学习的就是JAVA,笔者尝试过使用JAVA完成一些爬虫项目,其中JSoup库和HTMLUnit是笔者在使用JAVA时用过的工具,使用JSoup时,需要将jar包放置到对应项目的bin文件中,或者使用Maven进行管理。
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.15.3</version>
</dependency>
但是由于使用JAVA进行爬虫有些许复杂,因此笔者没有对JAVA的爬虫进行深入研究。
2.Ruby
Ruby也是一个老牌的编程软件,之前笔者有选修过这门课程,因此也了解一些该编程语言如何进行爬虫,Ruby中需要用到第三方库Nokogiri库来进行爬虫,因此需要下载:
gem install nokogiri
下载完成后即可导入这个库中的方法进行爬虫.
require 'open-uri'
require 'nokogiri'
由于年代久远,在此只做记录,如后续有时间,笔者可能会深入了解一下,如各位读者中有Ruby编程者,可以使用该库中的方法进行爬虫。
3.Python
Python是目前笔者使用最多的,用于爬虫的编程语言了,Python相较于JAVA来说更加适合初学者学习爬虫,如果是未学习过JAVA基础知识的初学者,通过JAVA首次学习爬虫,估计在MAVEN就可能被搞得晕头转向了(小声BB,笔者也是这么过来的)。相对于Ruby语言来说,Python具有更多的第三方工具和更便捷的编程方式。
对于大部分初学者和使用者来说,Python就可以完成大部分的爬虫需求,因此在本系列的笔记中主要部分中,将记录Python的爬虫所需要的库,使用方法等。记录下来方便笔者自己复习,如果能够帮助到其他读者,当然是最好不过的了。
接下来,会详细说明一下Python爬虫的优缺点,首先是优点:
- 易于下载安装,易于上手。如何快速下载可以看这两篇,Anaconda的下载和Anaconda的安装。直接把Anaconda这个编程工具下下来,里面自带了Python和一些便于使用的编程工具。
- Python有很多强大实用的库,在此列举几个:Requests库,lxml库,Beautiful Soup库,Scrapy库,Selenium库等,这些库都是笔者爬虫时经常使用的库,对于不同的情况可能需要使用不同库来进行处理,所以有效实用的库当然时多多益善。
import requests from bs4 import BeautifulSoup import scrapy from lxml import html from selenium import webdriver
- Python目前也是一款非常热门编程语言的,在CSDN,腾讯云等多个技术论坛上都有开发者提供的对应的文档、教程、笔记等,减少其他开发者解决问题和学习所需要的时间。笔者正式这茫茫人海中的一员。
- 强大的数据处理能力,例如pandas库和Numpy库,有些时候爬虫爬取下来的数据,并不是最终的数据,很多时候会有其他文本或者标点符号在内,于此同时处理完数据将数据保存到文本中,也需要这些数据处理库进行协助。
- Python具有强大的绘画功能库:如matplotlib库和Seaborn库等,可以有效可视化爬取后清洗完成的数据,对于需要数据分析,分析报告,编程练手等方面都有帮助。
Python在爬虫方面也有一些缺点,以下是笔者在使用Python爬虫时遇到的困难:
- 获取网页文本后,可能需要使用大量解析程序进行解析从而获取我们想要的数据
- 对爬取错误处理比较单一,代码较为复杂
- 存在IO瓶颈,对于一次性读写的数据有上限(笔者只在亿级别数据中出现过该瓶颈)
- 性能消耗和异步编程平衡,笔者目前无法做到很好的平衡
以上是笔者在使用Python进行爬虫时的感受,相对于大部分的爬虫需求者来说,使用Python进行爬虫已经足够了,除非上升到分布式,有几个小目标的数据需求,否则绝大数多数的爬虫任务都可以使用Python来完成。
介绍完笔者使用过编程语言,现在说一下目前笔者在使用python进行爬虫时,用到的两个工具:
1.PyCharm
PyCharm是笔者使用的较多的Python集成开发环境,在今年的上半年的人工智能项目和去年下半年Web等项目中都有用到,是一个非常强大的Python开发工具,提供智能代码补全,错误检查,断点调试,项目管理,支持多种web框架等功能。
如果各位读者之后遇到的Python项目或者爬虫项目评估完发现是一个中大型项目,那么PyCharm是一个非常好的开发工具选择。
下图是PyCharm的社区版下载图片,如需要专业版请进以下是官网链接Download PyCharm: The Python IDE for data science and web development by JetBrains
2.Jupyter Notebook
这是笔者在应对大多数中小型爬虫项目时用到编程工具,该编程工具会在下载Anaconda时自带下载下来。具体如何安装还是查看上文中的Aanconda的安装这两个超链接。
Jupyter Notebook是交互式的代码编写工具,即可以运行每一行代码查看是其功能,笔者就很喜欢这个功能,由于爬虫需要解析网页的,从而得到数据,一段几行代码运行就可以查看是否是正常获取到页面的数据,随时都可以通过代码块来测试代码是否有误,大大提高了获取的数据的效率,这是Jupyter Notebook的一大优点的。
并且在最后的数据分析的阶段,Jupyter Notebook也比PyCharm的显示更加简明,更好支持多图展示,图片修改等功能。
以上是笔者曾经使用过爬虫编程语言和爬虫工具,对于初学者或者对内部逻辑不太了解的人来说,使用Jupyter Notebook和Python来进行爬虫的训练是最简单的,笔者当年也是这么过来的,通过不断运行代码和方法来理解这些代码的含义,从而将代码做出必要的调整和更新,如果这篇文章有帮助到各位读者,笔者万分有幸。