#page_text=requests.get(url=url,headers=headers).text response=requests.get(url=url,headers=headers) #处理中文乱码问题 response.encoding='utf-8' page_text=response.text #初始化etree对象 tree=etree.HTML(page_text) #解析对象列表 page_list=tree.xpath('//div[@class="sc_warp mt20"]/div/div/div/a') #创建文件夹存储下载数据 folder='./jianli/' if not os.path.exists(folder): os.mkdir(folder) #遍历对象列表 for page in page_list: #解析文件名 name=page.xpath('./img/@alt')[0] #解决中文乱码问题 #name=name.encode('iso-8859-1').decode('gbk') #解析下载页的URL href=page.xpath('./@href')[0] #print(name,href) #处理URL if href[0] == "/": href = 'https:' + href #获取下载页源码 page_text2=requests.get(url=href,headers=headers).text #构造etree对象 tree2=etree.HTML(page_text2) #解析下载地址 href2=tree2.xpath('//div[@class="down_wrap"]/div[2]/ul/li[1]/a/@href')[0] #处理URL if href2[0]=="/": href2='https:'+href2 #print(name,href2) #添加后缀名 name=name+'.rar' #创建文件路径 path=folder+name #读取文件数据 data=requests.get(url=href2,headers=headers).content #数据持久化 with open(path,'wb') as fp: fp.write(data) print(name,'下载成功!!!') #对不同的页码循环执行 for i in range(50,879): print(f'开始下载第【{i}】 |