datawhale爬虫類task01

#1 ランキングのIMDB top250をクロール使用要求、正規表現、
#の要件は、ランキング、映画のタイトル、年、監督や他の分野クロール。


インポート要求
 のインポートインポートCSV
 インポート時の
 クラスdoubanTop250():

    film_list = [] 

    1の送信要求
    DEF に、send_request(セルフ、URL):
        追加する1.1ヘッダー要求 
        ヘッダー= { ' User--エージェント'" Mozillaの/ 5.0(Windowsの場合10.0 NT、Win64の、ヤモリ様x64-)のAppleWebKit / 537.36(KHTML)クローム/ 75.0.3770.100サファリ/ 537.36 " }
         1.3は、要求を送信します
        応答= requests.get(URL = urlには、ヘッダ= ヘッダ)
         プリント(response.status_code)
         リターン応答

    2解析数据
    デフ解析(自己、応答):
        データ = response.content.decode()
        ランク   = re.findall(' <EMクラス= "">(\ D +)</ em>の' 、データ)
        名前 = re.findall(' <IMG幅= "100" ALT = "(。*)SRC = ' 、データ) =再.findall(' &NBSP; /&NBSP;(*)&NBSP; /&NBSP; ' 、データ) 
        ディレクター = re.findall(' 导演:(。*)' 、データ)
        スコア = re.findall(' <スパンクラス= "rating_num"プロパティ= "V:平均">(*)</スパン> ' 、データ)
         のための I における範囲( 0、LEN(ランク)):
            film_dict = {} 
            film_dict [ ' ランク' ] = 順位[I] 
            film_dict [ ' 名前' ] = 名[I] 
            film_dict [ ' ' ] = 国[I] 
            film_dict [ 'ディレクター" ] =ディレクター[I] 
            film_dict [ ' スコア' ] = [I]スコア
            self.film_list.append(film_dict) 


    3.保存するデータの
    DEFのsave_data(セルフ):
        0のファイルを開くを作成 
        CSV_File =オープン(' top250.csvを'' W '、エンコード= ' UTF-8 ' 1 CSVライタ作成 
        csv_writer = csv.writerを(CSV_File)
        2書き込みヘッダ
        csv_writer.writerow(self.film_list [0] .keys( ))
         3。書き込み内容 
        csv_list =[]
         の場合はフィルムself.film_list:
            film_data = film.values()
            csv_list.append(film_data)
        csv_writer.writerows(csv_list) 
        4.ファイル閉じます
        )(csv_file.closeを

        渡し
    4.ファイル名を指定して実行
    DEF RUN(セルフ):
        1.1ターゲットURLアドレス
        #のステッチのURL 
        BASE_URL = " https://movie.douban.com/top250?start= "の
        ための I におけるレンジ(0,225,25 ):
            FINAL_URL = BASE_URL + STR(I)
            1.リクエストを送信し、応答オブジェクトの復帰 
            応答= self.send_request(FINAL_URL) 

            2の解析応答データ
            self.parse(応答)
            time.sleepを( 5 3.保存データ
        self.save_data()



doubanTop250()。RUN( )

 

おすすめ

転載: www.cnblogs.com/tommyngx/p/11312172.html