web-dev-qa-db-ja.com

SeleniumがTikTokページをロードしない

私はセレンとスクレイピーを使用してTikTokクローラーを実装しています

start_urls = ['https://www.tiktok.com/trending']
....
def parse(self, response):
    options = webdriver.ChromeOptions()
    from fake_useragent import UserAgent
    ua = UserAgent()
    user_agent = ua.random
    options.add_argument(f'user-agent={user_agent}')
    options.add_argument('window-size=800x841')
    driver = webdriver.Chrome(chrome_options=options)
    driver.get(response.url)

クローラーは開いていますChromeただし、動画は読み込まれません。 画像の読み込み

Firefoxを使用しても同じ問題が発生します Firefoxを使用してページをロードしない

Seleniumを使用した単純なスクリプトを使用した同じ問題

from Selenium import webdriver
import time


driver = webdriver.Firefox()
driver.get("https://www.tiktok.com/trending")
time.sleep(10)
driver.close()

driver = webdriver.Chrome()
driver.get("https://www.tiktok.com/trending")
time.sleep(10)
driver.close()
4
user12512567

Seleniumブラウザーウィンドウ内をさらに移動しようとしましたか? エラー404が次のサイトに表示された場合、私にはうまくいった解決策があります:

ユーザーエージェントを「Naverbot」に変更しました。これは、Tik Tokのrobots.txtファイルで「許可」されています

Robots.txt

変更後、すべてのサイトとビデオが適切に読み込まれます。

ローテーションを追加する場合は、「許可」セグメントの下にリストされている他のユーザーエージェントも機能するはずです。

1
zebo

Windows IE を使用できます。 chromeまたはfirefoxの代わりに

ビデオはIEに読み込まれますが、フィードを表示するIEのレイアウトは、chromeおよびFirefoxとは多少異なります。

理由、ページが読み込まれない理由。

ブラウザーの履歴、プロファイルデータをチェックし、ユーザーの認証をチェックするためにキャッシュされる、高度なWebアプリはほとんどありません。他にできることの1つは、Selenium内でデフォルトのプロファイルを実行することです。

0
Zeeshan Ahmad