前面已经写了如何获取网页源码,那么接下来就是该解析网页并提取需要的数据了。这里简单写一下正则表达的用法。

  首先,找个要抓取图片的网站,获取源码。

import requests
import re

# 获取网页源码
url = 'http://www.ivsky.com/tupian/xiaohuangren_t21343/'
data = requests.get(url).text

  小黄人的图。。。接下来浏览器检查元素,发现图片源码格式,前面均为<img ,结尾均为 .jpg 而我们要提取的就是网址部分。

python3爬虫初探(三)之正则表达式

  正则表达式如下:

#正则表达式三部曲
#<img src="http://img.ivsky.com/img/tupian/t/201411/01/xiaohuangren-009.jpg" width="135" height="135" alt="卑鄙的我小黄人图片">
regex = r'<img src="(.*?.jpg)"'#匹配网址
pa = re.compile(regex)#转为pattern对象
ma = re.findall(pa, data)#findall 方法找到所有的符合pa的对象,添加到一个列表中并返回
print(ma)#图片网址列表
print(len(ma))#列表长度,即找到图片个数

#截取部分列表输出
#['http://img.ivsky.com/img/tupian/t/201411/01/xiaohuangren_tupian-007.jpg', 'http://img.ivsky.com/img/tupian/t/201411/01/xiaohuangren-009.jpg', 'http://img.ivsky.com/...
#25