解脱束缚

网上内容和新闻实在是太多了,每天追剧要刷网站,每天看新闻要刷网站,每天重复的刷网站。一个个到网站上去看比较麻烦,而且每次都有很多广告,心情会变差。本人也比较懒,就想到搞个小爬虫把自己喜欢的内容快速收集,方便看也不用担心广告烦。

能做爬虫的语言实在是太多。用 python 主要考虑原来知道一点,而且作为脚本语言很方便,成熟库N多想要什么就有什么。作为替换 shell 脚本也非常棒的选择,日常简单处理工作内容非常方便。

准备开始

作为一个脚本语言考虑,简单和方便应该作为第一位。还是很容易上手的。

window 7 没有python需要自己安装,mac自带有python2和3的版本。

官网地址: https://www.python.org 安装: 有两个大版本 2 和 3,作为脚本直接用最新版本,不用纠结。

mac的python3反正有,不知道是不是原来自己安装的,反正有了。看系统里有没有python和版本号

mac 终端$ python --version // mac 默认的版本Python 2.7.10$ python3 --version // mac python 3 的命令Python 3.5.1win cmd> python --versionPython 3.5.2

python3中自带的库urllib可以抓去网站

简单开始

直接在终端中输入python3即可进入python的环境。windows中直接输入python

sunseeddembp:~ sunseed$ python3Python 3.5.1 (v3.5.1:37a07cee5969, Dec 5 2015, 21:12:44) [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwinType "help", "copyright", "credits" or "license" for more information.>>> exit()

可以看到上面的信息,说明可以玩了。粗暴方法,直接关闭终端(命令行),或是优雅的告诉系统exit() 退出

exit() # 退出python

小试牛刀

先抓去一个网站玩玩,抓自己的blog http://www.moguf.com,内容保存到mogufhome.html文件中。

import urllib.request data = urllib.request.urlopen("http://www.moguf.com").read()data = data.decode()f = open("./mogufhome.html", 'w') print(data, file=f)

非常简单就把内容抓取下来,可以打开文件看里面的内容。

命令说明

上面的命令不多,就5句话搞定。

1、告诉python我要个 urllib.request 功能库,可以请求网站给数据的功能2、读取 http://www.moguf.com 网站的内容,保存到 data 里。这里http:// 是必须的,不会像浏览器一样,给我们补全。3、重新解码,就是给人看的内容。4、创建一个文件mogufhome.html5、把数据输出到文件中。

直接运行py脚本

上面的方法有个缺陷,每次要打一大堆命令也是个麻烦事情。所以可以考虑直接保存一个文件,运行这个脚本。创建getmogufhome.py 把上面的内容复制进去。

$ cat > getmogufhome.pyimport urllib.request data = urllib.request.urlopen("http://www.moguf.com").read()data = data.decode()f = open("./mogufhome.html", 'w') print(data, file=f)^C$

保存到文件后,直接可以运行这个文件。

$ python3 getmogufhome.py

如果是windows默认安装,会自动关联py文件,直接双击文件就能运行很方便。

一些小麻烦

有些情况会出现一下错误

编码错误

UnicodeEncodeError: 'ascii' codec can't encode characters in position 59-61: ordinal not in range(128)Traceback (most recent call last): File "", line 1, in UnicodeEncodeError: 'gbk' codec can't encode character '\\xa9' in position 19551: illegal multibyte sequence

这些信息是说,变成我们能看得懂的地方有些问题。需要个编码工具库codecs帮忙。

import urllib.requestimport codecsdata = urllib.request.urlopen("http://www.moguf.com").read()data = data.decode("utf-8")f = codecs.open("./mogufhome.html", 'w', "utf-8") print(data, file=f)

把所有的内容都转换成 UTF-8 的格式

结束

python3确实很方便,寥寥几句就能获得自己想要的内容。

查看原文 >>
相关文章