python网络爬虫练习

今天完成了一个小爬虫练习,将一个overwatch的壁纸分享上的图片爬了下来并保存在本地

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 抓取网页中的图片到本地
# 1. 抓取网页
# 2. 获取图片地址
# 3. 抓取图片内容并保存到本地
# 抓取的图片为ow
from urllib import request
import re
req = request.urlopen('http://ow.duowan.com/1604/324398538441.html')
buf = req.read()
buf = buf.decode('UTF-8')
# print(buf)
listUrl = re.findall(r'http://img.+.jpg', buf)
# print(listUrl)
i = 0

for url in listUrl:
f = open(str(i) + '.jpg', 'wb')
req = request.urlopen(url)
buf = req.read()
f.write(buf)
i += 1

在写的过程中遇到几个坑,记录一下:

  • python3已经取消了urllib2,改为from urllib import request,下面的方法也跟着改就好
  • 爬下来的数据需要转码decode('UTF-8')
  • 在保存图片文件时应该使用wb方式,二进制方式写数据

接下来会系统学习下网络爬虫,基于python3(笑)