Pythonの爬虫類2日目

「」「
IMDBのメッセージクロール
    映画ランキング、映画のURL、映画の名
    の映画監督、映画スター、映画の年/タイプ
    の映画のスコア、映画レビュー、映画の

分析のURLすべてのホーム

「」」
のインポートが要求
 輸入のRe
 #を3爬虫類屈原の1は、要求を送信
DEF :get_page(URL)
    レスポンス = requests.get(URL)
    印刷(response.text)
    リターン応答

2分析データ
DEFのparse_index(HTML):
   movie_list = re.findallを("<DIV CLASS = "アイテム">。*?<EMクラス= "">(。*?)</ em>の。*?<a href="(.*?)">。*?<スパンクラス=」タイトル"> </ span>の*导演(*。?):。?主演(*。?):。?(。*?)<BR>(。*?)</ P> * <スパンクラス=" rating_num 」。*?>(。*?)</ span>を。*?<スパン>(。*?)人评价</ span>を。*?<スパンクラス= "INQ">(。*?)</スパン> 'HTML、re.S)
    を返すmovie_list 3.保存を数据デフsave_data(映画):
    トップ、m_url、名前、daoyan、俳優、year_type、ポイント、コミット、DESC = 映画
    year_type = year_type.strip(' \ nを' 
    データ = '''
          ========== ==========見るために歓迎
            のランキング映画を:{} 
            動画のURL:{} 
            映画監督:{}


 
            作品名:{}
            映画出演:{} 
            ジャンル:{} 
            作品の評価:{} 
            映画レビュー:{} 
            映画:{} 
          ==========次回========== 
          \ N- 
          \ N- 
          '' ' .format(トップ、m_url、名前、daoyan、俳優、year_type、ポイント、コミット、DESC)
     印刷(データ)
    を開きます(と' douban_top250.txt ' ' A 'エンコード= ' UTF-8 " )F AS:
        f.write(データ)
    を印刷' 映画:{}成功を書いて... ' .format(名))

IF  __name__ == " __main__ ' 
    NUM = 0
     のためのラインでのレンジ(10 ):
        URL = ' https://movie.douban.com/top250?start={}&filter= ' .format(NUM)
        NUM + = 25
         印刷( URL) 

        1。各ホームページを要求送信するために 
        index_res = get_page(URL) 

        映画情報2.解決ホームページ 
        movie_list = parse_index(index_res.text)
         のための映画movie_list:
            印刷(動画)
            セーブデータ3を
            save_data(動画)
セレン要求ライブラリ
セレンは何1
、初めは自動テストツールである駆動原理が作動して、いくつかの良いブラウザを実行しなければならないです
爬虫類には、基本的にアナログブラウザは、あなたが爬虫類のためにそれを使用することができている

私はセレン使うべき理由2.
利点を:JS実行コード
の複雑な通信プロセスを分析する必要が
ブラウザのポップを作ることはできない、と他の操作ダウンを引く
*****動的なデータを取得することができる
亀裂が認証ログインすることができます***

欠点を:低効率

3.インストールと使用
1.インストール要求セレンをライブラリ
PIP3はセレンインストール

2.あなたがブラウザをインストールする必要があり
、「グーグル」またはFirefox

3には、ブラウザのドライバをインストール
http://npm.taobao.org/mirrors/chromedriver/2.38/を
以下からのセレンのインポート webdriverを#のウェブドライブ
から selenium.webdriver インポート ActionChains   #はあなたが使用絵ドラッグすることができたときに、コードのスライドをクラック
から selenium.webdriver.common.byのインポートすることで   、どのような方法でBy.IDを見つけることを、By.CSS_SELECTOR 
から selenium.webdriver.common.keysは、インポートキー   #のキーボード操作
から selenium.webdriver.supportのインポート expected_conditions EC AS   と一緒に以下のWebDriverWaitと
から selenium.webdriver.support.wait インポート WebDriverWait   ページ読み込みある要素待つ
インポートタイム

#の方法:ブラウザドライバ開くことによって 
ドライバ= webdriver.Chrome(R&LT :ユーザー\ CをMerliah \ダウンロード/ chromedriver.exe \ 

2つの方法:webdriver.exeにドライバをPythonインタプリタのインストールディレクトリ/ Scriptsフォルダ
#のPythonインタプリタのインストールディレクトリ/スクリプトは、環境変数の設定Pythonインタプリタ環境変数インストールディレクトリ構成

試み

    driver.get(https://www.jd.com/ #を10秒表示を取得するまで待機することはオブジェクト
    #はラベルのロードに10秒待って 
    待機= WebDriverWait(ドライバ、10 #をIDキーの要素を見つける 
    ザ・input_tag = wait.until(EC.presence_of_element_located((By.ID、" キーを' )))
    time.sleep( 5。 ) 

    入力ボックスに製品を入力します 
    (input_tag.send_keys ' 人形" #を押して入力します    input_tag.send_keys(Keys.ENTER)を
    time.sleep( 20は最終的には閉じるブラウズオペレーティングシステムリソースを解放する 
    )(driver.closeを


 セレンセレクタ

以下からのセレンのインポート webdriverをする#のウェブドライブ
から selenium.webdriver.common.keys インポートキー   #のキーボード操作
のインポート時間

ドライバ = webdriver.Chrome()

のtry 

    暗黙の待ち時間:呼び出す前にGETの
    #は任意の要素をロードするために10秒を待って 
    ドライバを.implicitly_wait(10 

    driver.get(' https://www.jd.com/ ' 

    #のショー待ち:あなたは、GET後に呼び出す必要があります 
    (5 time.sleepを

    '' ' 
========== ===== ===================すべてのメソッド
    要素がラベル見つけることです
    要素は、すべてのタグを見つけることです
 '' ' 
     自動ログインBaiduのスタート
    リンクされたテキストを通過find_element_by_link_text 1、#を 
    = driver.find_element_by_link_text LOGIN_LINK(' ログイン" 
    login_link.click()  クリックしてサイン

    time.sleep( 1 

    2、#はidで行くfind_element_by_idを取得 
    USER_LOGIN = driver.find_element_by_id(' TANGRAM__PSP_10__footerULoginBtn ' 
    user_login.click()

    time.sleep( 1 

    3、find_element_by_class_name 
    ユーザーdriver.find_element_by_class_name =(' パステキスト-INPUT-userNameに'
    user.send_keys('' ) 

    4、find_element_by_name 
    PWD = driver.find_element_by_name(' パスワード' 
    pwd.send_keys('' 
    提出 = driver.find_element_by_id(' TANGRAM__PSP_10__submitを' 
    submit.click() 終わり5、find_element_by_partial_link_text ローカルリンクテキスト検索 
    LOGIN_LINK = driver.find_element_by_partial_link_text(' 登録' 
    login_link.click() 6。、find_element_by_css_selector 属性セレクタに基づいて要素を見つけます

    

    
    

    
    
    :。クラス
    #1 #:ID 
    login2_link = driver.find_element_by_css_selector(' .tang-パス-footerBarULogin ' 
    login2_link.click() 

    7、find_element_by_tag_name 
    DIV = driver.find_elements_by_tag_name(' DIV ' 印刷(DIV)

    time.sleep( 20 

最終的には#は、ブラウザのリリースのオペレーティング・システム・リソースのクローズ 
    (driver.closeを)

 



おすすめ

転載: www.cnblogs.com/merliah/p/11119558.html