私はセレンとスクレイピーを使用して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()
Seleniumブラウザーウィンドウ内をさらに移動しようとしましたか? エラー404が次のサイトに表示された場合、私にはうまくいった解決策があります:
ユーザーエージェントを「Naverbot」に変更しました。これは、Tik Tokのrobots.txtファイルで「許可」されています
( Robots.txt )
変更後、すべてのサイトとビデオが適切に読み込まれます。
ローテーションを追加する場合は、「許可」セグメントの下にリストされている他のユーザーエージェントも機能するはずです。
Windows IE を使用できます。 chromeまたはfirefoxの代わりに
ビデオはIEに読み込まれますが、フィードを表示するIEのレイアウトは、chromeおよびFirefoxとは多少異なります。
理由、ページが読み込まれない理由。
ブラウザーの履歴、プロファイルデータをチェックし、ユーザーの認証をチェックするためにキャッシュされる、高度なWebアプリはほとんどありません。他にできることの1つは、Selenium内でデフォルトのプロファイルを実行することです。