IMDBのtop250をクロールday02

「」 ' 
IMDBのメッセージをクロール:
    映画ランキング、フィルム名、URLの映画、映画監督の
    映画スター、映画年、ジャンル
    映画音楽、映画レビュー、映画の紹介

1.すべてのURL家の分析
最初のページにします。https:/ /movie.douban.com/top250?start=0&filter= 
2ページ:HTTPS :? //movie.douban.com/top250開始= 25 &フィルタ= 
3ページ目:HTTPS:開始//movie.douban.com/top250? 50&フィルタ= = 

'' ' 
インポート要求
 のインポートを再
 #のクローラ三部作の1の要求を送信
DEF get_page(URL):
    応答 = requests.get(URL)
    印刷(response.text)
    リターン・レスポンス

解析されたデータ、2 
DEFのparse_index
    (HTML):'' '' ''
    「「」
    映画ランキング、映画のURL、映画名、映画監督、映画主演
    年/映画カテゴリーの映画、映画音楽、映画レビュー、映画の紹介
    の<divクラス=「アイテム」> 。*?<エムクラス=「」>(。*? 。?)</ EM> <a href="(.*?)"> * 
    * <スパンクラス= "タイトル">(*)</ span>の*ディレクター:。?。?。?(*)。?主演:(。*?)<BR> </ p型>(。*?)
    * <。?スパンクラス= "rating_num" *> </ span>の*の<span>((*)。?。?。?。 *?)の人がコメント</ span>を
    。*?<スパンクラス= "INQ">(。*?)</ span>の
    
    <divのクラス= "項目">。*?<EMクラス= "">(。* ?)</ em>の* <a href="(.*?)"> * <スパンクラス= "タイトル">(*)</ span>の* ディレクター:。?。?。?。?(*。? )主演:(*)<BR>(*) </ P> * <スパンクラス= "rating_num" *。?>(*)</ span>の*の<span>(。?。?。?。?。? 。*?)人</スパン>をコメントしました。*?<スパンクラス= "INQ">(。*?)</ span>の
    '' ' 
    movie_list = re.findall('<DIV CLASS = "アイテム"> 。*?<EMクラス= "">(。*?)</ em>の。*?<a href="(.*?)">。*?<スパンクラス= " タイトル"(*。?)> </ span>の* 主演取締役:?(*。?):<BR> </ P> * < 。?スパンクラス=(。*?)(。*?)" rating_num "*?>(。* ?)</ span>を。*?<スパン>(。*?) の人がコメント</ span>を。*?<スパンクラス=" INQ「>(。*?)</スパン> " 
                HTML、
                re.S)が
    返すmovie_list 

3を、データ保存
DEFの:save_data(映画を)
     #の映画ランキング、映画のURL、映画の名前、映画監督、主演映画
    #1 、動画年/映画カテゴリ、フィルムスコア、映画のレビューを映画
    トップ、m_url、名前、daoyao、俳優、year_type、\ 
    ポイント、コミット、DESC = 映画
    year_type = year_type.strip(' \ nの' 
    データ = F'' ' 
                見て======== ========歓迎
                    {トップ}:ランキング映画を
                    、映画のURL:{} m_url 
                    作品名:{名前} 
                    映画監督:{} daoyao 
                    出演映画:{俳優を} 
                    年式:{} year_type 
                    映画の評価:{ポイント} 
                    映画のレビュー:{}コミット
                    映画:{} DESC      
                見るため========感謝を======== 
                \ N- 
                \ N- 
                '' ' 
    プリント(データ)

    を開く(と' douban_top250.txt '' A '、エンコーディング= " UTF-8' )F AS:
        f.write(データ)

    を印刷(F ' 映画:{name}が正常に書き込まれ... ' 

IF  __name__ == ' __main__ " #は、すべてのホームスプライスさ 
    NUM = 0の
     ためにラインでのレンジ(10 ) :
        URL = F ' https://movie.douban.com/top250?start={num}&filter= ' 
        NUM + = 25
         印刷(URL) 

        1。各家庭での要求を送信 
        index_res = get_page(URL) 

        2映画情報のホーム・ページを解析 
        movie_list =parse_index(index_res.text)

        のための映画movie_list:
            プリント(映画)

            3.保存数据 
            save_data(動画)

 

おすすめ

転載: www.cnblogs.com/zaccheo/p/11118717.html