Embarrassments百科事典の爬虫類ケース

すべての人気作品、タイトル、コンテンツリンク、面白い数、コメント数をクロールembarrassments百科事典

#のコーディング= UTF-8 

から lxmlのインポートetree
 インポート要求
 インポートのJSON
 クラス:QiubaiSpider
     デフ __init__ (自己):
        self.url_temp = " https://www.qiushibaike.com/8hr/page/{}/ " 
        self.header = { " ユーザエージェント"" はMozilla / 5.0(Windows NTの10.0; Win64の、x64)のクローム/ 76.0.3809.100サファリ/ 537.36のAppleWebKit / 537.36(ヤモリ様KHTMLは、)" }
     DEF (自己)get_url_list:
        url_list = [自己。 url_temp.format(I)についてI における範囲(1,14 )]
         戻りurl_listの

    デフでもparse_url(自己、URL):
         プリント" 正在爬取:" 、URL)
        応答 = requests.get(URL、ヘッダー= self.header)
         戻りresponse.content.decode ()
     DEF get_content_list(自己、html_str):
        HTML = etree.HTML(html_str)
        1分组 
        div_list = html.xpath(" // divの[@クラス= 'お勧めします-記事を'] //李" 
        content_list = [ ]
         のためのdivdiv_list:
            アイテム = {} 
            アイテム[ " 作者名" ] = div.xpath(" .//スパン/テキスト()クラス= 'recmd名' @] ")[0] 場合でlen(div.xpath(" .//スパン[@クラス= 'recmd名'] /テキスト()"))> 0 なし
            のアイテム[ " 标题" ] = div.xpath(" .//a[@class='recmd-content '] /テキスト()" 
            項目[ " 内容链接" ] = div.xpath(" .//a[@class='recmd-content'] / @ hrefの" 
            アイテム[" コンテンツリンク" ] = ' https://www.qiushibaike.com ' +アイテムの[ " コンテンツリンク" ] [0] のIF([項目lenは、 " コンテンツリンク" ])> 0 それ以外なし
            [項目" 面白い番号" ] div.xpath =(" .// divの[クラス@ = 'recmd-NUM'] /スパン/テキスト()" 
            項目[ " 面白い番号" ] = [項目" 面白い番号" ] [0] のIFでlen(項目[ " 面白い番号" ])>0 なし
            項目[ " 评论" ] = div.xpath(" .// divの[クラス@ = 'recmd-NUM'] /スパン/テキスト()")[ - 2 ]
             #の項目[ "评论"] =項目の[」评论"] [3] lenの場合(項目["评论"])>それ以外0なし
            content_list.append(項目)
         戻りcontent_listの
     #のB保存
    デフsave_content(自己、content_list): オープンと" qiubai.txt " " "エンコード= " UTF-8 " Fとして):
            以下のためのコンテンツcontent_list:
                f.write(json.dumps(コンテンツ、ensure_ascii = 偽))
                f.write(" N- \ " を印刷" セーブ成功" 

    DEF RUN(セルフ):
        1. URLアドレスの法則によれば、URL構造リスト 
        url_list = self.get_url_list()
        2は、要求取得応答送信
        のための URL :URL_LIST 
            html_str = self.parse_url(URL)
            3を抽出データ 
            CONTENT_LIST = self.get_content_list(html_str)
            4. [保存]を
            self.save_content(content_list)

の場合 __name__ == ' __main__ ' 
    qiubai = QiubaiSpider()
    qiubai.run()

 

おすすめ

転載: www.cnblogs.com/-chenxs/p/11419066.html