投稿バーのクロールとローカルへの保存

プロセス指向のコード

インポートが要求

ステップ
#は、URLアドレスを決定したURLのリストを生成トラバースURLリストを、要求データ
#は、ローカルに返されるデータセーブ

https://tieba.baidu.com/f?kw=武漢&PN * 0 = 0 50 https://tieba.baidu.com/f?kw=武漢、PN = 50 50 *&1 https://tieba.baidu.com/f?kw=武漢、PN = 100 50 *&2 HTTPS:// Tieba .baidu.com / F?キロワット=武漢、PN = 150 50 *&3 https://tieba.baidu.com/f?kw=武漢、PN = 200 50×&4 
#のカスタムポストバー名 
名= INPUT(" してくださいそれは名前を入力し、貼り付けます。' URLテンプレート 
のURL = ' https://tieba.baidu.com/f?kw= PN = {} {}&" 
生成されたリストURL
[url.format(名前、50 * I)= URL_LIST  I における(5レンジ)]
 プリント(URL_LIST)
は、上ヘッダ情報コピー要求ブラウザを定義する 
ヘッダー= {
     " User--エージェント"" はMozilla / 5.0 (Macintosh版、インテルのMac OS X-10_13_6)のAppleWebKit / 537.36(ヤモリのようにKHTML、)クローム/ 80.0.3987.163サファリ/ 537.36 " }
 反復url_list、GET URL 
のための項目uRL_LIST:
    要求URL、データ取得への 
    応答を= requests.get (項目、ヘッダ= ヘッダ)
     #のファイル名 
    file_nameが= " _それを投稿しました' + name + " 第{}页" .format(url_list.index(item)+1)+ " .html " 
    保存到文件 
    with open(file_name、' w '、encoding = ' utf-8 ' )as f :
        f.write(response.content.decode())

 

オブジェクト指向コードをカプセル化する

1は、URL生成URL_LIST決定2.リストを横断し、要求データ3の戻りデータは、ローカルに保存された
インポート要求


クラス:Tieba_spider(オブジェクト)
     DEF  __init__ (セルフ、名前を):
        それを貼り付ける名前 
        self.name = #をURL貼り付け初期 
        self.url = ' https://tieba.baidu.com/f?kw= ' +名+ ' &= {PNは} ' 
        上にヘッダ情報コピー要求ブラウザを定義 
        = self.headers {
             " ユーザーエージェント""Mozilla / 5.0(Macintosh; Intel Mac OS X 10_13_6)AppleWebKit / 537.36(KHTML、like Gecko)Chrome / 80.0.3987.163 Safari / 537.36 " } 

    def get_url_list(self):
         " "" Generate url list "" " 
        url_list = [self .url.format(50 * I)のために I (5レンジ)]
         を返すURL_LIST 

    DEFの:get_data_fromurl(セルフ、URL)を
         "" " サーバーからデータを取得し、復号返す" "" 
        リクエストURLを、URLというデータを得ることですurl_listから来る横断する 
        レスポンス= requests.get(URL、ヘッダ= self.headers)
         リターンresponse.content。decode() 

    defsave_html(セルフ、html_str、NUM):
        ファイル名 
        FILE_NAME = ' ポストバー_ ' + self.name + " P上の{} " .format(NUM)+ " の.html " 
        ファイルに保存された 
        オープンして(file_nameに、W '、encoding = ' utf-8 ' )as f:
            f.write(html_str)

    def run(self):
         pass 
        1.生成するURLを決定url_list 
        url_list = self.get_url_list()
         2.リストをトラバースし、
         item_urlのデータリクエストURL_LIST:
            html_str = self.get_data_fromurl(item_url)は
             3の戻りデータは、ローカルに保存 
            self.save_html(html_str、url_list.index(item_url)+ 1。 


IF  __name__ == ' __main__ ' #の入力 
    名= INPUT(" してくださいそれに接続されている名前を入力してください:" 初期 
    スパイダー= Tieba_spider(名)
     runメソッドの呼び出し 
    (spider.runを)

 

おすすめ

転載: www.cnblogs.com/wutongluo/p/12735498.html