我知道知乎上关于网络爬虫的文章过于泛滥了.
大部分网络爬虫的思路是:
1 先将网页的源代码(html)下载下来.
2 然后从源代码中通过regexp等技术, 提取出感兴趣的内容(比如表格, 图片, 视频等).
既然知乎上网络爬虫的文章已经泛滥了, 为什么还要写这篇文章呢?
因为这篇文章将是你看过的最简单易学的(希望不要有人喷我, 说什么这个不算是网络爬虫, Whatever, 只要是能达到目的就好, 管它是什么呢?).
比如下面这个表格, 关于Project Euler各种编程语言的统计, 是按照字典序排列的, 但是, who care这个, 大部分人想看哪种语言最流行. 但是, 不知道为什么(为了避免圣战? 还是单纯懒得做这个功能?), 该网站就是不提供这样的排序功能, 非常蛋疼.
只能将表格下载下来, 自己进行排序了.
如何将表格下载下来呢?
步骤1: 将这个表格用鼠标选定, 然后ctrl+C(复制)
步骤2: 使用pandas的read_clipboard下载下来.
import pandas as pd
df = pd.read_clipboard()
你没看错, 就只有这简单的两行代码, 就实现功能了!
接下里, 使用pandas的排序功能, 进行排序, 看看哪些语言流行.
df1 = df.sort_values(by="Total Number of Members", ascending=False)
可以看到在Project Euler里, Python的流行度竟然超过了C/C++, 这个有些出乎意料. 因为Project Euler是一个算法网站, 一般会认为C/C++最流行.
绘图, 更直观一些:
df2 = df1.set_index("Language")
df2[:20].plot.bar()
有兴趣的读者可以做一下"家庭作业":
1 后面两列因为带有%号, 实际是字符型, 这对排序造成了一定的困难, 想办法将它们转换成数值型, 然后排序.
2 对另外一个表格进行下载, 并进行排序:
Sign In - Project Eulerprojecteuler.net系列文章:
haitao:利用Python的pandas库做简单的网络爬虫2zhuanlan.zhihu.com创作不易, 请大家"素质三连": 点赞, 收藏, 分享.