python网页数据抓取(通过Python访问网站的HTML代码获取特定的img标签中的图片地址 )

优采云 发布时间: 2022-02-21 21:28

  python网页数据抓取(通过Python访问网站的HTML代码获取特定的img标签中的图片地址

)

  ================爬虫原理====================

  通过Python访问网站,获取网站的HTML代码,通过正则表达式获取特定img标签中src的图片地址。

  之后,访问图片地址,通过IO操作将图片保存到本地。

  ================脚本代码====================

  import urllib.request # 网络访问模块

import random # 随机数生成模块

import re # 正则表达式模块

import os # 目录结构处理模块

# 初始化配置参数

number = 10 # 图片收集数量

path = 'img/' # 图片存放目录

# 文件操作

if not os.path.exists(path):

os.makedirs(path)

# 图片保存

def save_img(url, path):

message = None

try:

file = open(path + os.path.basename(url), 'wb')

request = urllib.request.urlopen(url)

file.write(request.read())

except Exception as e:

message = str(e)

else:

message = os.path.basename(url)

finally:

if not file.closed:

file.close()

return message

# 网络连接

http = 'http://zerospace.asika.tw/photo/' # 目标网址

position = 290 + int((1000 - number) * random.random())

ids = range(position, position + number)

for id in ids:

try:

url = "%s%d.html" % (http, id) # 后缀生成

request = urllib.request.urlopen(url)

except Exception as e:

print(e)

continue

else:

buffer = request.read()

buffer = buffer.decode('utf8')

pattern = 'class="content-img".+\s+.+src="(.+\.jpg)"'

imgurl = re.findall(pattern, buffer) # 过滤规则

if len(imgurl) != 0:

print(save_img(imgurl[0], path))

else:

continue

pass

  ================运行结果====================

  

  

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线