本人主要是做Android开发,业余时间学习Python语言,喜欢以项目开发作为学习过程,所以把自己所学习的和自己理解的知识分享出来,希望能给同样学习Python语言的朋友一些帮助,有错误的地方也请及时提出,我会做出修改。
今天给大家分享的是一个简单的图片爬去Demo,涉及到一些简单的知识,如果有不明白的地方可以给我留言,或者自行百度,Python版本3.6。
import urllib.request
import urllib.error
#正则表达式库
import re
#定义爬取单个页面函数
def carw(url, page):
# 打开网页并读取
html_info = urllib.request.urlopen(url).read()
# 转换成字符串
html_info = str(html_info)
# 含有图片信息筛选的正则表达式
pat_one = '.+?'
# 进行匹配过滤,得到信息列表
result = re.compile(pat_one).findall(html_info)
#取出信息字符串,只有一个元素
result = result[0]
#含有图片地址筛选的正则,
pat_two = '
#得到图片地址列表
image_list = re.compile(pat_two).findall(result)
# 循环下载存储
x = 1
for image_url in image_list:
# 设置文件名称和格式
image_name = "E:/image/" + str(page) + str(x) + ".jpg"
try:
# 存储文件
urllib.request.urlretrieve(image_url, image_name)
# 处理异常
except urllib.error.URLError as e:
if hasattr(e, "code"):
x += 1
if hasattr(e, "reason"):
x += 1
x += 1
# 主循环程序
for i in range(1, 5):
url = "http://m.ivsky.com/tupian/ziranfengguang/index_" + str(i) + ".html"
carw(url, i)
代码很简单,就是一些基本库的应用,可以多练习几个网站图片的抓取,有利用我们理解爬虫的基本原理,谢谢大家!