一、网络爬虫
网络爬虫又被称为网络蜘蛛(🕷️),我们可以把互联网想象成一个蜘蛛网,每一个网站都是一个节点,我们可以使用一只蜘蛛去各个网页抓取我们想要的资源。举一个最简单的例子,你在百度和谷歌中输入‘Python',会有大量和Python相关的网页被检索出来,百度和谷歌是如何从海量的网页中检索出你想要的资源,他们靠的就是派出大量蜘蛛去网页上爬取,检索关键字,建立索引数据库,经过复杂的排序算法,结果按照搜索关键字相关度的高低展现给你。
千里之行,始于足下,我们从最基础的开始学习如何写一个网络爬虫,实现语言使用Python。
二、Python如何访问互联网
想要写网络爬虫,第一步是访问互联网,Python如何访问互联网呢?
在Python中,我们使用urllib包访问互联网。(在Python3中,对这个模块做了比较大的调整,以前有urllib和urllib2,在3中对这两个模块做了统一合并,称为urllib包。包下面包含了四个模块,urllib.request,urllib.error,urllib.parse,urllib.robotparser),目前主要使用的是urllib.request。
我们首先举一个最简单的例子,如何获取获取网页的源码:
importurllib.request
response= urllib.request.urlopen('https://docs.python.org/3/')
html=response.read()print(html.decode('utf-8'))
三、Python网络简单使用
首先我们用两个小demo练一下手,一个是使用python代码下载一张图片到本地,另一个是调用有道翻译写一个翻译小软件。
3.1根据图片链接下载图片,代码如下:
importurllib.request
response= urllib.request.urlopen('http://www.3lian.com/e/ViewImg/index.html?url=http://img16.3lian.com/gif2016/w1/3/d/61.jpg')
image=response.read()
with open('123.jpg','wb') as f:
f.write(image)
其中response是一个对象
输入:response.geturl()
->'http://www.3lian.com/e/ViewImg/index.html?url=http://img16.3lian.com/gif2016/w1/3/d/61.jpg'
输入:response.info()
->
输入:print(response.info())
->Content-Type: text/html
Last-Modified: Mon, 27 Sep 2004 01:23:20 GMT
Accept-Ranges: bytes
ETag: "0f4b59230a4c41:0"
Server: Microsoft-IIS/8.0
Date: Sun, 14 Aug 2016 07:16:01 GMT
Connection: close
Content-Length: 2827
输入:response.getcode()
->200
3.1使用有道词典实现翻译功能
我们想实现翻译功能