「」「 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を)