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を使用して翻訳結果を抽出します。
ステートメント
時間に限りがあるため、
後続のコードは記述されません。これは比較的簡単です。ええと、基本的にセレンはそんなに使う必要があります。