利用Python实现最简单的网页爬虫教程 - 从入门到实践指南

2017 年 08 月 13 日 10 时 08 分 49 秒进行了更新,作者是 xiaomi。
我们日常上网浏览网页时,经常能看到一些好看的图片。我们希望把这些图片保存下载,既可以用来做桌面壁纸,也可以用来做设计的素材。下面这篇文章给大家介绍了利用 python 实现最简单的网页爬虫的相关资料,有需要的朋友可以参考借鉴,一起看看吧。
前言
网络爬虫,也被称作网页蜘蛛、网络机器人,在 FOAF 社区中,更常被称为网页追逐者。它是一种按照特定规则,能够自动抓取万维网信息的程序或脚本。最近,我对 python 爬虫产生了强烈的兴趣,在此将自己的学习路径分享出来,欢迎大家提出建议。我们可以相互交流,共同进步。话不多说,让我们一起来看看详细的介绍吧。
1.开发工具
笔者使用的工具是 sublime text3 ,它很短小且精悍 ,可能男人们不太喜欢这个词 ,但这让我十分着迷 。推荐大家使用它 ,当然如果你的电脑配置较好 ,那么 pycharm 可能更适合你 。
推荐查看这篇关于用 Sublime Text3 搭建 Python 开发环境的文章。
[sublime搭建python开发环境][]
2.爬虫介绍
爬虫顾名思义,是像虫子那样的存在。它爬在 Internet 这张大网上。通过这种方式,我们便能够获取自己想要的东西。
要在 Internet 上进行活动,我们就需要知晓 URL,它被称为“统一资源定位器”,也有“链接”这样的小名。它的结构主要由以下三部分构成:
(1)协议:如我们在网址中常见的HTTP协议。
IP 地址:它是即将域名经过解析后所对应的具体地址。
(3)路径:即目录或者文件等。
3.urllib开发最简单的爬虫
(1)urllib简介
ModuleIntroduce
urllib.error
urllib.parse
将 URL 解析为各个组件,或者由各个组件组装成 URL。
urllib.request
一个用于打开 URL 的可扩展库。
urllib.response
urllib.robotparser
加载一个 robots.txt 文件,并回答关于其他 URL 可抓取性的问题。
(2)开发最简单的爬虫
百度首页简洁大方,很适合我们爬虫。
爬虫代码如下:
from urllib import request
def visit_baidu():
URL = "http://www.baidu.com"
# open the URL
req = request.urlopen(URL)
# read the URL
html = req.read()
# decode the URL to utf-8
html = html.decode("utf_8")
print(html)
if __name__ == '__main__':
visit_baidu()
结果如下图:
我们能够在百度首页的空白处进行右击操作,接着查看审查元素,以此来与我们的运行结果进行对比。
当然,request 能够生成一个 request 对象,并且这个对象可以借助 urlopen 方法来打开。
代码如下:
from urllib import request
def vists_baidu():
# create a request obkect
request 发送了一个请求,请求的目标是 'http://www.baidu.com'
# open the request object
使用 request.urlopen(req) 发起请求,获取到的响应为 response。
# read the response
html = response.read()
html = html.decode('utf-8')
print(html)
if __name__ == '__main__':
vists_baidu()
运行结果和刚才相同。
(3)错误处理
错误处理通过 urllib 模块进行。主要存在 URLError 和 HTTPError 这两种错误。HTTPError 错误是 URLError 错误的子类,这意味着 HTTPError 也能够通过 URLError 来捕获。