经过,对上一版爬虫的仔细研究,我换了一个编写思路,写了这个2.0版本。
依然废话不多说,直接上代码。
# 导入库
import os, time, requests
# 请求头
headers = {
'User-Agent': 'Chrome 10.0'
}
# 图片数据列表
pictures = []
# 获取图片数据
def get_pic(url, nums):
for num in range(0, int(nums)):
url_all = str(url) + f'{str(num)}.jpg'
res = requests.get(url=url_all, headers=headers)
pic_content = res.content
pictures.append(pic_content)
time.sleep(0.5)
# 创建目的文件夹
def get_path(path_name):
if not os.path.exists(f'C:/Users/liu/Desktop/图集/{path_name}'):
os.mkdir(f'C:/Users/liu/Desktop/图集/{path_name}')
else:
pass
# 保存图片数据
def save_data():
for pic,i in zip(pictures, range(int(Num))):
picture = open(f'C:/Users/liu/Desktop/图集/{str(Page_Num)}/{str(i)}.jpg', 'wb')
picture.write(pic)
picture.close()
# 主程序入口
if __name__ == '__main__':
Page_Num = input('Enter the Page_name:') # Page_Num指下文url所代指的数字
Num = int(input('Enter the Num:')) + 1 # Num为写真集的图片数
url = f'https://tjg.gzhuibei.com/a/1/{str(Page_Num)}/' #
get_path(path_name=Page_Num)
get_pic(url=url, nums=Num)
save_data()
print('Finish!')
在编写的第一版爬虫的过程中,我发现可以通过算从而确定每张图片的url。因此,在第二版中,我省去了对lxml库的运用。
通过运算得到所有图片的url,相对于第一版更简便,也不用更多地访问,节省了下载时间。
在这个图集谷爬虫-2.0完成后,如果能够的话,我会继续对图集谷爬虫的不断优化。
感谢大家的支持!