python3系
1#coding:utf-8 2import time 3import getpass 4import requests 5import json 6from selenium.webdriver.support.ui import Select 7from selenium import webdriver 8from selenium.webdriver.chrome.options import Options 9from webdriver_manager.chrome import ChromeDriverManager 10# --headlessだけではOSによって動かない、プロキシが弾かれる、 11# CUI用の省略されたHTMLが帰ってくるなどの障害が出ます。 12# 長いですが、これら6行あって最強かつどんな環境でも動きますので、必ず抜かさないようにしてください。 13# 仮想ブラウザ起動、URL先のサイトにアクセス 14#driver = webdriver.Chrome(ChromeDriverManager().install()) 15#browser = webdriver.Chrome() 16#driver.get("http://2captcha.com/in.php?key=") 17#driver = webdriver.Chrome() 18#driver.get('https://www.google.com/') 19chrome_options = webdriver.ChromeOptions() 20chrome_options.add_experimental_option("excludeSwitches", ['enable-automation']) 21driver = webdriver.Chrome(ChromeDriverManager().install(), options=chrome_options) 22driver.get("http://2captcha.com/in.php?key=") 23 24 25chrome_options.add_argument("--disable-gpu"); 26chrome_options.add_argument("--disable-infobars") 27chrome_options.add_argument("--disable-extensions"); 28chrome_options.add_argument("--proxy-server='direct://'"); 29chrome_options.add_argument("--proxy-bypass-list=*"); 30chrome_options.add_argument("--start-maximized"); 31chrome_options.add_argument("--headless"); 32driver = webdriver.Chrome(ChromeDriverManager().install(), options=chrome_options) 33# JSでtextareaタグのdisplay:noneを削除する 34driver = webdriver.Chrome(ChromeDriverManager().install(), options=chrome_options) 35driver.execute_script('var element=document.getElementById("g-recaptcha-response"); element.style.display="";') 36 37service_key = 'a658155478a999c6f853060fbb573865' # 2captcha service key 38google_site_key = '6Ld2sf4SAAAAAKSgzs0Q13IZhY02Pyo31S2jgOB5' # reCAPTCHAのdata-sitekey 39pageurl = 'https://patrickhlauke.github.io/recaptcha/' 40url = "http://2captcha.com/in.php?key=" + service_key + "&method=userrecaptcha&googlekey=" + google_site_key + "&pageurl=" + pageurl 41 42resp = requests.get(url) 43if resp.text[0:2] != 'OK': 44 quit('Service error. Error code:' + resp.text) 45captcha_id = resp.text[3:] 46 47fetch_url = "http://2captcha.com/res.php?key="+ service_key + "&action=get&id=" + captcha_id 48 49for i in range(1, 10): 50 time.sleep(5) # wait 5 sec. 51 resp = requests.get(fetch_url) 52 if resp.text[0:2] == 'OK': 53 break 54print('Google response token: ', resp.text[3:]) 55# textareaにトークンを入力する 56driver.find_element_by_id('g-recaptcha-response').send_keys(resp.text[3:]) 57#表示したサイトのスクリーンショットを撮る 58#browser.save_screenshot('screen.png') 59 60#表示した瞬間消えちゃうから幅を持たせておく 61time.sleep(5) 62 63# サイト内から検索フォームを探す。 64# Googleでは検索フォームのNameが「q」です。 65#el = driver.find_element_by_name("q") 66# 検索フォームに文字を入力 67#el.send_keys('supreme.com') 68#time.sleep(2) 69 70# 検索フォーム送信(Enter) 71#el.submit() 72 73#from bs4 import BeautifulSoup 74#soup = BeautifulSoup(driver.page_source, features="html.parser") 75# タイトルをターミナル上に表示 76#print(soup.title.string) 77
仮想環境にてファイルを実行しようとしているのですがいろいろなエラーが出てきてしまいます。
(pycharm) PS C:\Users\shota\documents\selenium\bot\pycharm> python selenium_sample4.py Looking for [chromedriver 80.0.3987.106 win32] driver in cache File found in cache by path [C:\Users\shota.wdm\drivers\chromedriver\80.0.3987.106\win32\chromedriver.exe] DevTools listening on ws://127.0.0.1:55784/devtools/browser/7c647202-acb2-4764-8b0e-6a2106cab78d Looking for [chromedriver 80.0.3987.106 win32] driver in cache File found in cache by path [C:\Users\shota.wdm\drivers\chromedriver\80.0.3987.106\win32\chromedriver.exe] DevTools listening on ws://127.0.0.1:55802/devtools/browser/8f802e16-06ab-4968-b13b-140d4c6d56b2 Looking for [chromedriver 80.0.3987.106 win32] driver in cache File found in cache by path [C:\Users\shota.wdm\drivers\chromedriver\80.0.3987.106\win32\chromedriver.exe] DevTools listening on ws://127.0.0.1:55820/devtools/browser/21a8390c-1402-4cc4-8bf9-aa88bc873752 Traceback (most recent call last): File "selenium_sample4.py", line 35, in <module> driver.execute_script('var element=document.getElementById("g-recaptcha-response"); element.style.display="";') File "C:\Users\shota\AppData\Local\Programs\Python\Python38-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 634, in execute_script return self.execute(command, { File "C:\Users\shota\AppData\Local\Programs\Python\Python38-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute self.error_handler.check_response(response) File "C:\Users\shota\AppData\Local\Programs\Python\Python38-32\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.JavascriptException: Message: javascript error: Cannot read property 'style' of null (Session info: headless chrome=80.0.3987.149)
このエラーはどうゆうことでしょうか。
ネットで調べても解決方法が見当たらなかったので、苦戦しています。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/28 04:48
2020/03/28 04:55