python爬虫zol图片库
import requests from lxml import html import re from concurrent.futures import ThreadPoolExecutor etree = html.etree def get_detail_href(url): """ 获取页面图片详情页href """ res = requests.get(url) res.encoding = "gbk" detail_href = etree.HTML(res.text) #print(detail_href) hrefs = detail_href.xpath("//ul[@class='pic-list2 clearfix']/li/a/@href") full_href = [] for href in hrefs: href = url + href full_href.append(href) return full_href def get_image_url(href): """ 这里是获取详情页图片下载地址 """ res = requests.get(href) res.encoding = "gbk" obj = re.compile(r"nowPicSrc.*?:(?P<imgsrc>.*?),",re.S) #提取页面中的图片src pic_src = obj.search(res.text).group("imgsrc") return pic_src def download_pic(pic_url): """ 这里是下载具体图片 """ pic_name = pic_url.split("/")[-1].strip('"') pic_url = pic_url.replace('"','') print(pic_url) res = requests.get(pic_url) print(f"开始下载{pic_name}!!!") with open(f"image/{pic_name}","wb") as f: f.write(res.content) print(f"{pic_name}下载完成!!!") def main(url): """ 主程序入口 """ #1. 这个是获取图片详情页 print("开始抓取主页图片的详情页面url") full_href = get_detail_href(url) pic_detail_src_lists = [] #2. 这个是获取详情页里面的图片url,用于图片下载 for href in full_href: pic_detail_src_list = get_image_url(href) pic_detail_src_lists.append(pic_detail_src_list) print("抓取主页详情页url完成!!!") #3. 依据步骤2获取到的pic url下载pic print("进入详情页pic 下载") with ThreadPoolExecutor(5) as t: for pic_url in pic_detail_src_lists:#pic_url为具体图片下载url t.submit(download_pic,pic_url) print("下载over!!!") if __name__ == '__main__': url = "https://desk.zol.com.cn" main(url)
版权声明:本文内容由互联网用户撰写,该文观点仅代表作者本人。本站爱分享仅提供分享服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请立马联系本站,本站将立刻删除。
THE END
二维码
文章目录
关闭

共有 0 条评论