彼 岸 桌 面
"""
爬虫简单教学
2022/5/3
"""
import requests # 用于请求网页[内置库,pip、pip3下载]
import re # 正则表达式,用于解析筛选网页中的信息[内置库,pip、pip3下载]
# 存储分页网址的列表
responseNew = []
for i in range(2, 4):
responseNew.append('http://######/meinv/index_' + str(i) +'.htm')
print(responseNew)
# 存储图片地址的信息列表
picAdd = []
# 抓取每个分页的信息
for i in responseNew:
headers = { # 请求头,用于隐藏自身,防止被反爬机制pass掉,[将自己伪装成浏览器]
'User-Agent':
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.84 Safari/537.36'
}
# 根据实际页面的分页抓取数据,[由于首页的格式问题与第二页不一致所以此处舍去首页从第二页开始抓取]
response = requests.get(i, headers=headers)
# <img src="http:/######/file/2022/0501/small003404By6As1651336444.jpg" alt="">
pic = '<img src="(.*?)" alt="(.*?)">'
print(pic)
# 使用re库里的findall方法将网页内所有img爬取下来
result = re.findall(pic, response.text)
print(result)
# 将地址循环遍历进存储图片地址的信息列表
for j in result:
img = j[0]
picAdd.append(img)
print(picAdd)
# 将数据存储到对应的文件夹中,并将图片重新命名
num = 1 # 命名编号
for each in picAdd: # 当不能下载时抛出问题
try:
pic = requests.get(each, timeout=10)
except requests.exceptions.ConnectionError:
print('【错误】当前图片无法下载')
continue
dir = 'C:/Users/Shinelon/Desktop/Pic/ ' +'pic_' + str(num) + '.jpg' # 存储在盘对应的文件夹中,按照序号命名图片
print(dir)
fp = open(dir, 'wb') # 打开文件夹
fp.write(pic.content) # 并写入信息
fp.close() # 关闭文件夹
num += 1 # 编号按顺序加1