import urllib.request from lxml import etree from urllib import parse class Image(): def __init__(self,url): self.url = url self.headers = {"User-Agent" : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11"} def loadPage(self): request = urllib.request.Request(self.url,headers=self.headers) html = urllib.request.urlopen(request).read().decode() content = etree.HTML(html) link_list = content.xpath('//div[@class="main wrap"]/div/div/div/div/a/@href') for link in link_list: if link[-4:] == "html": fullurl = self.url + link[-11:] self.loadImag(fullurl) def loadImag(self,url): #print(url) headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"} request = urllib.request.Request(url, headers=headers) html = urllib.request.urlopen(request).read().decode() #//div[@class="detail"]/p/a/img/@src content = etree.HTML(html) link_list = content.xpath('//div[@class="detail"]/p/a/img/@src') print(link_list) for link in link_list: self.writeImage(link) def writeImage(self,link): request = urllib.request.Request(link, headers=self.headers) #由于下载图片所以不用进行转码 image = urllib.request.urlopen(request).read() filename = link[-10:] with open(filename,"wb") as f: f.write(image) print("download...%s"%filename) if __name__ == "__main__": url = "http://www.neihanpa.com/pic/" print(url) img = Image(url) img.loadPage()
爬取图片
最新推荐文章于 2023-10-22 17:27:25 发布