セレニウムとパイソンクローラー(5)[データ処理(ターゲット4)バイドゥ翻訳例]

Webページのソースコードを取得するためのセレンの違い

この最初のブログはすでに書かれています。しかし、ここで繰り返したいのは彼の違いです


drive=webdriver.Chrome()

drive.get('https://www.baidu.com/')
print(drive.page_source)

page_sourceはseleniumによって返されるソースコードですが、これとリクエストライブラリから取得するものとの違いは次のとおりです。Seleniumは動的に更新でき、継続的に更新できます。Seleniumはブラウザのようなもので、Ajaxに表示されるページをブラウザのように直接取得できます。
たとえば、リクエストを使用する場合、フックネットをクロールして
ここに写真の説明を挿入
ここに写真の説明を挿入
リクエストを見つけることができません。
ここに写真の説明を挿入

これは、セレンが自然に取得できるようにブラウザに読み込まれているためですが、リクエストを使用する場合は、いずれかのURLにアクセスするだけで、当然1つしか取得できません。リクエストを使用してurl_1のみにアクセスし、コンテンツがurl_2にある場合の関係は、図に示されています。
ここに写真の説明を挿入

インスタンス

from selenium import webdriver
import time

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as Ec
drive=webdriver.Chrome()
drive.get('https://fanyi.baidu.com/?aldtype=16047#zh/en')

def set_word():

    try:
        InputTag=WebDriverWait(drive,10).until(
            Ec.presence_of_element_located((By.ID,'baidu_translate_input'))
        )
        InputTag.send_keys('你好')
    except Exception as e :
        print(e)
set_word()#百度会刷新一次所以要两次
time.sleep(2)
set_word()



print(drive.page_source)

前の結果(
ここに写真の説明を挿入
リクエストを使用と比較した現在の結果(Helloが返されます)
ここに写真の説明を挿入

次に、それをetreeに配置し、xpathを使用するか、直接reを使用して翻訳結果を抽出します。

ステートメント

時間に限りがあるため、ここに写真の説明を挿入
後続のコードは記述されません。これは比較的簡単です。ええと、基本的にセレンはそんなに使う必要があります。

おすすめ

転載: blog.csdn.net/FUTEROX/article/details/108503604