如何编写一个可以 下载(或叫:爬取)一个网页 的网络爬虫
使用的系统:Windows 10 64位
Python 语言版本:Python 2.7.10 V
使用的编程 Python 的集成开发环境:PyCharm 2016 04
我使用的 urllib 的版本:urllib2
注意: 我没这里使用的是 Python2 ,而不是Python3
一 . 简介
编写网络爬虫的第一步就是下载网页,这个过程叫做: 爬取 。
二 . 准备工作
要想爬取网站,首先要将网站下载下来。我们使用 Python 内置的:urllib2 模块 来下载网站的 URL。
注意: 无须下载任何第三方库哦。
参考网站:http://stackoverflow.com/questions/34475051/need-to-install-urllib2-for-python-3-5-1
三 . 最简单的下载网页的网络爬虫程序
新建一个文件:download_html.py
。将下面的代码输入进去:
import urllib2
def download(url):
return urllib2.urlopen(url).read()
执行:
> C:\Python27\python.exe -i download_html.py
>>> html = download('http://www.aobosir.com')
>>> print html
<!DOCTYPE html>
<html>
<head>
</head>
<body>
</body>
<script>
window.location.href="http://blog.csdn.net/github_35160620"
</script>
</html>
>>>
这样的程序,不是每一次都很顺利的运行的。我们可能会在执行上面这个程序的时候,遇到一些无法控制的问题,这根据你爬取的网站的不同而定。
* 比如,有的网站使用的编码方式与你这个程序下载网站是读取网站的编码方式不同,就会导致乱码问题;
* 再比如说:如果你爬取的目标网站具有反爬虫机制,那么当你爬取它的时候,你会遇到503 Service Unavailable
问题;
* 再比如说:如果你爬虫的网站根本不存在,那么你会得到 404 Not Found
问题。
四 . 加入异常处理程序
所以,我们为了能让程序捕获到这些异常情况,需要加上异常处理的程序。最终程序会变成下面这个样子:
import