经过,对上一版爬虫的仔细研究,我换了一个编写思路,写了这个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完成后,如果能够的话,我会继续对图集谷爬虫的不断优化。

        感谢大家的支持!