python爬虫類の第3歩-簡単にウェブサイトのピクチャーをつかみます

1694 ワード

解釈はすべてコードの中にあって、読みやすくて理解しやすいです
注意:正規表現のところには、私が探しているサイトのため、中の画像リソースがあります.uploadの接頭辞は、マッチングの条件として直接使用することができます.具体的なマッチングは、あなたが登っているサイトを見て、その画像リソースにどのような法則があるかを見て、マッチングを容易にします.
import urllib.request;
import re;

class GetURLImage:
    def __init__(self , URL , HEAD):#   
        self.url = URL;
        self.head = HEAD;
    def getHtml(self):#  html    
        self.request = urllib.request.Request(self.url);#     url
        self.request.add_header("user-agent" , self.head);#     
        self.response = urllib.request.urlopen(self.request);#      
        return self.response.read();#  html    
    def getList(self):
        self.strimglist = [];
        #/_upload/tpl/00/20/32/template32/images/logo.png
        #            ,     
        self.imglist = re.findall(b"_upload/.*.png" , self.getHtml());
        #                  ,         ,            
        for i in self.imglist:
            self.strimglist.append(self.url + str(i , encoding="utf8"));
        return self.strimglist;
    def getImage(self):
        num = 0;
        filename = "./image/";
        for self.url in self.getList():
            num += 1;
            #     ,             image    ,     image   
            with open(filename + str(num) + ".png" , "wb") as f :
                f.write(self.getHtml());

url = "          ";
head = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36";

html = GetURLImage(url , head);
#print(html.getList());
#print(html.getHtml());
html.getImage();
print("  !!!");

ページを深く登ることも考えられますが、後で書く時間があります.