質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

Q&A

解決済

4回答

3583閲覧

bet365のサイトがseleniumでスクレイピングができません。詳しい方、教えていただけないでしょか?

ryuyax7.

総合スコア12

スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

0グッド

0クリップ

投稿2020/06/26 13:35

編集2020/06/26 15:34

以前まではPythonのseleniumを使用してbet365のサイトをスクレイピングできたのですが、突然できなくなってしましました。
FireFox自体は立ち上がるのですが、bet365のサイトだけがどうしても開きません。通常のブラウザでの起動では問題なくサイトに入れることは確認しています。デベロッパーツールのconsoleでは下記のエラーが確認出来たので、サイトからのレスポンスが変わったとかが原因なのでしょうか?
でも、通常のブラウザ起動では問題がなく,結局解決方法が分からずご質問させてもらいました。
ChromeやSafariでも同様にサイトに接続出来ませんでした。

下記実行ソースと環境とログになります。

macOS Catalina:Version 10.15.5
selenium:3.141.0
geckodriver:Version 0.26.0

Python3

1# bet365.py 2from selenium.webdriver import Firefox 3from selenium.webdriver.firefox.options import Options 4 5class Bet365Driver(object): 6 def __init__(self): 7 option = Options() 8 option.log.level = 'trace' 9 self.driver = Firefox(executable_path=settings.driver_path, options=option) 10 self.driver.get('https://www.bet365.com/') 11 12# main.py 13from bet365.bet365 import Bet365Driver 14 15if __name__ == '__main__': 16 bet365 = Bet365Driver() 17
SyntaxError: JSON.parse: unexpected end of data at line 1 column 1 of the JSON data
1593178290440 mozrunner::runner INFO Running command: "/Applications/Firefox.app/Contents/MacOS/firefox-bin" "-marionette" "-foreground" "-no-remote" "-profile" "/var/folders/kl/1knsq6kn0tlcqj0pgbvy9sm40000gn/T/rust_mozprofilegbOWun" 1593178290441 geckodriver::marionette DEBUG Waiting 60s to connect to browser on 127.0.0.1:54860 1593178293067 Marionette TRACE Marionette enabled 1593178293215 Marionette TRACE Received observer notification toplevel-window-ready 1593178294985 Marionette TRACE Received observer notification marionette-startup-requested 1593178294985 Marionette TRACE Waiting until startup recorder finished recording startup scripts... 1593178294996 Marionette TRACE All scripts recorded. 1593178294996 Marionette DEBUG Setting recommended pref apz.content_response_timeout to 60000 1593178294996 Marionette DEBUG Setting recommended pref browser.contentblocking.introCount to 99 1593178294996 Marionette DEBUG Setting recommended pref browser.download.panel.shown to true 1593178294996 Marionette DEBUG Setting recommended pref browser.newtabpage.enabled to false 1593178294997 Marionette DEBUG Setting recommended pref browser.pagethumbnails.capturing_disabled to true 1593178294997 Marionette DEBUG Setting recommended pref browser.search.update to false 1593178294997 Marionette DEBUG Setting recommended pref browser.tabs.disableBackgroundZombification to false 1593178294997 Marionette DEBUG Setting recommended pref browser.tabs.remote.separatePrivilegedContentProcess to false 1593178294997 Marionette DEBUG Setting recommended pref browser.tabs.unloadOnLowMemory to false 1593178294997 Marionette DEBUG Setting recommended pref browser.tabs.warnOnCloseOtherTabs to false 1593178294997 Marionette DEBUG Setting recommended pref browser.tabs.warnOnOpen to false 1593178294997 Marionette DEBUG Setting recommended pref browser.usedOnWindows10.introURL to 1593178294997 Marionette DEBUG Setting recommended pref browser.urlbar.suggest.searches to false 1593178294998 Marionette DEBUG Setting recommended pref datareporting.policy.dataSubmissionPolicyAccepted to false 1593178294998 Marionette DEBUG Setting recommended pref dom.disable_beforeunload to true 1593178294998 Marionette DEBUG Setting recommended pref dom.disable_open_during_load to false 1593178294998 Marionette DEBUG Setting recommended pref dom.file.createInChild to true 1593178294998 Marionette DEBUG Setting recommended pref dom.max_chrome_script_run_time to 0 1593178294998 Marionette DEBUG Setting recommended pref dom.max_script_run_time to 0 1593178294999 Marionette DEBUG Setting recommended pref dom.push.connection.enabled to false 1593178294999 Marionette DEBUG Setting recommended pref extensions.getAddons.cache.enabled to false 1593178294999 Marionette DEBUG Setting recommended pref extensions.getAddons.discovery.api_url to data:, 1593178294999 Marionette DEBUG Setting recommended pref network.http.prompt-temp-redirect to false 1593178294999 Marionette DEBUG Setting recommended pref privacy.trackingprotection.enabled to false 1593178294999 Marionette DEBUG Setting recommended pref security.fileuri.strict_origin_policy to false 1593178294999 Marionette DEBUG Setting recommended pref security.notification_enable_delay to 0 1593178294999 Marionette DEBUG Setting recommended pref signon.autofillForms to false 1593178295000 Marionette DEBUG Setting recommended pref signon.rememberSignons to false 1593178295000 Marionette DEBUG Setting recommended pref toolkit.cosmeticAnimations.enabled to false 1593178295028 Marionette INFO Listening on port 54860 1593178295028 Marionette DEBUG Marionette is listening 1593178295045 Marionette DEBUG Accepted connection 0 from 127.0.0.1:54922 1593178295045 geckodriver::marionette DEBUG Connection to Marionette established on 127.0.0.1:54860. 1593178295046 Marionette DEBUG 0 -> [0,1,"WebDriver:NewSession",{"acceptInsecureCerts":true,"browserName":"firefox"}] 1593178295046 Marionette WARN TLS certificate errors will be ignored for this session 1593178295060 Marionette TRACE [16] Frame script loaded 1593178295060 Marionette TRACE [16] Frame script registered 1593178295062 Marionette DEBUG 0 <- [1,1,null,{"sessionId":"3d91129a-4eaa-a84d-ad7a-b34674e9f4b0","capabilities":{"browserName":"firefox","browserVersion":"77.0. ... /rust_mozprofilegbOWun","moz:shutdownTimeout":60000,"moz:useNonSpecCompliantPointerOrigin":false,"moz:webdriverClick":true}}] 1593178295066 webdriver::server DEBUG <- 200 OK {"value":{"sessionId":"3d91129a-4eaa-a84d-ad7a-b34674e9f4b0","capabilities":{"acceptInsecureCerts":true,"browserName":"firefox","browserVersion":"77.0.1","moz:accessibilityChecks":false,"moz:buildID":"20200602222727","moz:geckodriverVersion":"0.26.0","moz:headless":false,"moz:processID":80814,"moz:profile":"/var/folders/kl/1knsq6kn0tlcqj0pgbvy9sm40000gn/T/rust_mozprofilegbOWun","moz:shutdownTimeout":60000,"moz:useNonSpecCompliantPointerOrigin":false,"moz:webdriverClick":true,"pageLoadStrategy":"normal","platformName":"mac","platformVersion":"19.5.0","rotatable":false,"setWindowRect":true,"strictFileInteractability":false,"timeouts":{"implicit":0,"pageLoad":300000,"script":30000},"unhandledPromptBehavior":"dismiss and notify"}}} 1593178295068 webdriver::server DEBUG -> POST /session/3d91129a-4eaa-a84d-ad7a-b34674e9f4b0/url {"url": "https://www.bet365.com/"} 1593178295068 Marionette DEBUG 0 -> [0,2,"WebDriver:Navigate",{"url":"https://www.bet365.com/"}] 1593178295073 Marionette TRACE [16] Received DOM event beforeunload for about:blank 1593178295627 Marionette TRACE [16] Received DOM event pagehide for about:blank 1593178297073 Marionette TRACE [16] Received DOM event DOMContentLoaded for https://www.bet365.com/ 1593178297075 Marionette TRACE [16] Received DOM event pageshow for https://www.bet365.com/ 1593178297076 Marionette DEBUG 0 <- [1,2,null,{"value":null}] 1593178297077 webdriver::server DEBUG <- 200 OK {"value":null} 1593178297078 webdriver::server DEBUG -> POST /session/3d91129a-4eaa-a84d-ad7a-b34674e9f4b0/window/rect {"x": null, "y": null, "width": 1420, "height": 1200} 1593178297078 Marionette DEBUG 0 -> [0,3,"WebDriver:SetWindowRect",{"height":1200,"width":1420}] 1593178297130 Marionette DEBUG 0 <- [1,3,null,{"x":857,"y":109,"width":1420,"height":1200}] 1593178297133 webdriver::server DEBUG <- 200 OK {"value":{"x":857,"y":109,"width":1420,"height":1200}} 1593178297144 Marionette DEBUG Closed connection 0

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

本件、解決しましたでしょうか?

私も同じ事象で困っております。

ご質問された6月22日くらいの時点では、PC用サイトはダメでしたが、
スマホ用サイトのBet365は、Seleniumからでもアクセスできたので、
それで回避していたのですが、先日からスマホ用サイトでも、PC用サイトと統合されてしまい、
同事象に悩んでいます。

以上、よろしくお願い致します。

投稿2020/09/06 07:15

hiro25

総合スコア16

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Reach

2020/09/27 22:22 編集

削除済み
Reach

2020/09/27 22:22 編集

削除済み
guest

0

ベストアンサー

(動作不良のため削除します)

不具合などあっても 責任持ちません

Chromeで 機能 (弾かれることあり)
不要なコードの記述が あります

Python

1from selenium import webdriver 2from selenium.webdriver.chrome.options import Options 3 4from time import sleep 5import os 6 7class Bet365Driver(object): 8 def __init__(self): 9 userdata_dir = 'C:/Users/' + os.getlogin() + '/AppData/Local/Google/Chrome/User Data' 10 options = Options() 11 options.add_argument("--headless") 12 options.add_argument("--disable-dev-shm-usage") 13 options.add_argument('--disable-extensions') 14 options.add_argument('--disable-gpu') 15 options.add_argument('--lang=ja-JP') 16 options.add_argument("--proxy-server='direct://'") 17 options.add_argument("--proxy-bypass-list=*") 18 options.add_argument("--start-maximized") 19 options.add_experimental_option("excludeSwitches", ["enable-automation"]) 20 options.add_experimental_option('useAutomationExtension', False) 21 options.add_argument("--disable-blink-features=AutomationControlled") 22 options.add_argument("--no-referrers") 23 #options.add_argument('--user-data-dir=' + userdata_dir) # Headless時は 必ずコメントアウト 24 25 26 self.driver = webdriver.Chrome(executable_path="settings.driver_path", options=options) 27 28 self.driver.execute_script("Object.defineProperty(navigator, 'webdriver', {get: () => undefined})") 29 self.driver.execute_cdp_cmd('Network.setUserAgentOverride', {"userAgent": 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/82.0.4071.0 Safari/537.36'}) 30 31 self.driver.get('https://www.bet365.com/') 32 33 sleep (8) 34 list = self.driver.find_elements_by_tag_name('div') 35 print (len(list)) 36 test_text = self.driver.find_element_by_xpath('//div[@class="ool-OpenOffersLhsModule_Offer "]').text 37 print(test_text.encode('cp932', "ignore")) 38 self.driver.close() 39 self.driver.quit() 40 41 42if __name__ == '__main__': 43 bet365 = Bet365Driver()

Firefox版 ?

Python

1from selenium import webdriver 2from selenium.webdriver.firefox.options import Options 3 4from time import sleep 5import os 6 7 8class Bet365Driver(object): 9 def __init__(self): 10 11 options = Options() 12 #options.add_argument("--headless") 13 14 profile = webdriver.FirefoxProfile() 15 profile.set_preference("general.useragent.override","Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko") 16 profile.set_preference('useAutomationExtension', False) 17 profile.set_preference('devtools.jsonview.enabled', False) 18 profile.set_preference("dom.webdriver.enabled", False) 19 profile.update_preferences() 20 self.driver = webdriver.Firefox(executable_path="settings.driver_path",firefox_profile=profile, options=options) 21 22 self.driver.execute_script("Object.defineProperty(navigator, 'webdriver', {get: () => undefined})") 23 24 self.driver.get('https://www.bet365.com/') 25 26 sleep (8) 27 list = self.driver.find_elements_by_tag_name('div') 28 print (len(list)) 29 test_text = self.driver.find_element_by_xpath('//div[@class="ool-OpenOffersLhsModule_Offer "]').text 30 print(test_text.encode('cp932', "ignore")) 31 self.driver.close() 32 self.driver.quit() 33 34 35if __name__ == '__main__': 36 bet365 = Bet365Driver()

投稿2020/08/22 13:29

編集2020/09/27 18:30
Reach

総合スコア733

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ryuyax7.

2020/09/27 22:37

ありがとうございます。 いろいろ試してみようと思います!
guest

0

間違えて、アンサーへの返信を書いてしまった為、削除

投稿2020/06/26 18:18

編集2020/06/26 18:22
ryuyax7.

総合スコア12

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

他のサイトにはつながりますか?
出ているのがsyntaxerrorなので、seleniumにはあまり関係ないように思います。

追記

試しに串をさしてみましょう。

python

1options.add_argument('--proxy-server=http://123.456.789.123:1234')

適当なサーバを経由させてみてください。
option.log.level = 'trace'の次の行に記述してください。

投稿2020/06/26 18:11

編集2020/06/26 18:29
shirai

総合スコア1290

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ryuyax7.

2020/06/26 18:19

他のサイトには問題なくつながります。 また、ブラウザを通常に起動しurlを叩いた場合は問題なく、サイトに入れます。
shirai

2020/06/26 18:29

追記しました。
ryuyax7.

2020/06/26 18:47

上手くいきませんでした。事象は変わらずでした。 サイト側の応答に問題があるのでしょうか?
shirai

2020/06/26 18:53

サイト側の問題かどうかはまだ断定できないです。 出ているエラーがSeleniumには直接関係なさそうに見えたので、一旦疑って見ました。 とりあえず以下2点試してみましょう。 ・Seleniumではなくrequestsを使って繋がるか試して見てください。 ・firefoxではなくchromeを使って見てはいかがでしょうか。
ryuyax7.

2020/06/26 18:59

requestsを利用した場合は問題なく接続できデータを取得することも可能でした。 chromeでも同様の事象が発生してしまいます。 ブラウザコンソールを確認したところ、下記エラーが発生していので、現在はこちらを調べています。 www.bet365.com : server does not support RFC 5746, see CVE-2009-3555
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問