#Python学习笔记——爬虫的自我养成(一)

一、

爬虫需要的包为urllib

首先介绍urllib.request模块

urllib.request.urlopen('网站的地址') -> 打开一个网站,将网站的响应返回一个对象(可以类比打开一个文件返回一个文件对象)

urllib.request.read() -> 将网站对象转换成二进制数据,如果想将其打印必须解码:decode('utf-8')

例1:

由以上两个方法我们可以爬去网上一个图片,以http://placekitten.com/250/400为例:

import urllib.request as ur

respon = ur.urlopen('http://placekitten.com/250/400')#返回一个网站对象
res = respon.read()#将网站对象转化成二进制数据

with open('第一个爬虫.jpg', 'wb') as f:#以二进制方式打开一张空白图片
    f.write(res)#将网站对象的二进制数据写入图片,写入的数据和文件的打开方式一定要对应

例2:

from urllib import request

with request.urlopen('https://api.douban.com/v2/book/2129650') as f:
    data = f.read()
    print('Status:', f.status, f.reason)
    for k, v in f.getheaders():
        print('%s: %s' % (k, v))
    print('Data:', data.decode('utf-8'))

getheaders方法应该是返回一个数组,包含有服务器响应一个 HTTP 请求所发送的标头。

data的数据可以用“utf-8”解码

Status: 200 OK
Server: nginx
Date: Tue, 26 May 2015 10:02:27 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 2049
Connection: close
Expires: Sun, 1 Jan 2006 01:00:00 GMT
Pragma: no-cache
Cache-Control: must-revalidate, no-cache, private
X-DAE-Node: pidl1
Data: {"rating":{"max":10,"numRaters":16,"average":"7.4","min":0},"subtitle":"","author":["廖雪峰编著"],"pubdate":"2007-6",...}

二、

爬取有道词典进行翻译的流程。

1、查看网页源代码

2、在network中找到method,寻找客户端提交的请求

3、在请求中找到地址url

4、在请求中找到接口from data,其下内容便是客户端传给服务器的指定数据

5、data必须是指定要发送到服务器的其他数据的对象

6、data遵循一定的格式和编码传输协议(有待进一步考证utf-8的进一步含义)

7、利用字典封装需要传入的数据,利用方法urllib.parse.urlencod().encode('utf-8

)将其转化成能被传入服务器的格式和传输方式。utf-8将数据以bytes的形式传入

8、将指定数据传入服务器之后服务器会返回相应数据,这些数据的返回形式是'utf-8',因而在读取的过程中需要解码。即用urllib.request.read().decode('utf-8')

猜你喜欢

转载自blog.csdn.net/pioneer_AC/article/details/81382700