1问题
在大数据时代,信息的采集是一项重要的工作,如果单纯靠人力进行信息采集,低效繁琐,在工作中,有时会遇到需要相当多的图片资源,可是如何才能在短时间内获得大量的图片资源呢?
2方法
这里先对要运用的第三方库进行安装。本文选取的函数库主要为requests、lxml、etree。首先,我们随意打开一个网站,通过requests库对网页的地址进行访问申请。获取目标地址,进行循环,依次对每个图片地址进行操作,
代码清单1
代码语言:javascript
复制
import reques
if __name__ == '__main__':
url = 'https://www.vcg.com/creative-image/xigua/'
header = {'User_Agent':'Mozilla/5.0(Windows NT 10.0; Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/102.0.5005.63 Safari/537.36Edg/102.0.1245.39'}
response = requests.get(url=url, headers=header):
response.encoding = 'utf-8'
page_text = response.text
tree = etree.HTML(page_text)
figure_list = tree.xpath('//div[@class="gallery_inner"]/figure')
if not os.path.exists('./piclitl'):
os.makedirs('./piclitl')
for figure in figure_list:
try:
img_src = figure.xpath('./a/img/@data-src')[0]
except(IndexError):
print('未成功匹配到字段')
img_src = 'https:' + img_src
img_name = img_src.split('/')[-1]
try:
img_data = requests.get(url=img_src, headers=header).content
except(requests.exceptions.InvalidURL):
print('没有访问地址')
img_path = 'piclitl/' + img_name
with open(img_path, 'wb') as fp:
fp.write(img_data)
print(img_name, '下载成功')
3结语
针对利用Python如何在短时间内获取大量图片并保存的问题,提出使用爬虫、open()函数、iter_content()函数、write()函数、循环等方法将图片下载并保存,通过实验,证明该方法是有效的,但在描绘的过程中使用的方法过于单一,并没有很多色彩以及特点,未来应继续改善和学习。