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

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

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

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

Python

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

Q&A

解決済

1回答

972閲覧

pythonによるwebスクレイピングにて(初心者です)

takumisato

総合スコア5

スクレイピング

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

Python

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

0グッド

0クリップ

投稿2022/04/15 07:53

データを入力するサイトに、エクセルからデータを読み込み、それを入力するプログラムを作っています。
ページに入るときにログインが必要です。
ページを進んでいくとあるページのリンク先に行こうとするとエラーが発生して進めなく、困っております。

エラーの起こる箇所
browser.find_element_by_link_text("凍結防止剤散布車").Click()と入力すると
AttributeError: 'WebElement' object has no attribute 'Click'と表示されます。
また
browser.execute_script("javascript:SubmitFormRireki('1','1','1711643','272287')")と入力すると
ブラウザが「申し訳ありません もう一度ログインしてください」と表示された別のページへ飛びます。

マウスクリックでは問題なくリンク先へ行けます。
browser.find_element_by_xpath(xpath)やclassも試しました。
sleep.timeも試しました。他にはどんな要因が考えられますか?どうかご教授ください。
エクセルからデータを抜くプログラムを省略してコードを載せます。無駄なコードがたくさんで大変見にくいですがご容赦ください。
問題のページのスクリーンショット載せておきます。イメージ説明

python

python

1 2!pip install requests 3from selenium import webdriver 4from selenium import webdriver 5import time 6import openpyxl 7import pandas as pd 8import glob 9from selenium import webdriver 10# ① Selectモジュールをインポート 11from selenium.webdriver.support.select import Select 12import requests 13from bs4 import BeautifulSoup 14import re 15browser = webdriver.Chrome(executable_path = 'C:\\Users\\satout\\Desktop\\mypandas\\chromedriver.exe') 16browser.implicitly_wait(1) 17url = "https://***************************" 18browser.get(url) 19res = requests.get(url) 201 21soup = BeautifulSoup(res.text, "html.parser") 22 23 24xpath = ("/html/body/form/div/table[1]/tbody/tr[1]/td[2]/input") 25#time.sleep(3) 26userid=browser.find_element_by_xpath(xpath) 27userid.send_keys("***************") 28xpath = ("/html/body/form/div/table[1]/tbody/tr[2]/td[2]/input") 29password=browser.find_element_by_xpath(xpath) 30password.send_keys("**************") 31xpath = ("/html/body/form/div/table[3]/tbody/tr/td/div/input") 32roguinn=browser.find_element_by_xpath(xpath) 33#time.sleep(3) 34roguinn.click() 35xpath = ("/html/body/form/table[5]/tbody/tr/td[2]/div/a/img") 36nichijoukanri = browser.find_element_by_xpath(xpath) 37nichijoukanri.click() 38iframe = browser.find_element_by_name("topFrame") 39browser.switch_to.frame(iframe) 40 41xpath = ("/html/body/form/table/tbody/tr[1]/td[1]/div/a/img") 42kokusentaku = browser.find_element_by_xpath(xpath) 43kokusentaku.click() 44browser.switch_to.default_content() 45 46#time.sleep(5) 47 48iframe = browser.find_element_by_name("mainFrame") 49browser.switch_to.frame(iframe) 50 51xpath = ("/html/body/table[5]/tbody/tr[3]/td[2]/a") 52yuzawasabusute = browser.find_element_by_xpath(xpath) 53yuzawasabusute.click() 54 55#7月1日に移動 56iframe = browser.find_element_by_name("mainFrame") 57browser.switch_to.frame(iframe) 58tuki = browser.find_element_by_name("mvMonth") 59tuki.send_keys("7") 60niti = browser.find_element_by_name("mvDay") 61niti.send_keys("1") 62xpath = ("/html/body/form/table[5]/tbody/tr/td/div/input") 63hidukeidoubtn = browser.find_element_by_xpath(xpath) 64hidukeidoubtn.click() 65 66if y272287 > 0: 67 iframe = browser.find_element_by_name("mainFrame") 68 browser.switch_to.frame(iframe) 69 xpath = ("/html/body/form/table[11]/tbody/tr/td[7]/div/a/img") 70 sinkitourokubtn = browser.find_element_by_xpath(xpath) 71 sinkitourokubtn.click() 72 #iframe = browser.find_element_by_name("mainFrame") 73 #browser.switch_to.frame(iframe) 74 xpath = ("/html/body/form/table[4]/tbody/tr[3]/td/div/a/img") 75 syarozissekibtn = browser.find_element_by_xpath(xpath) 76 syarozissekibtn.click() 77 xpath = ("/html/body/form/table[4]/tbody/tr[2]/td/div/select/option[36]") 78 y272287sentaku = browser.find_element_by_xpath(xpath) 79 y272287sentaku.click() 80 xpath = ("/html/body/form/table[7]/tbody/tr/td[2]/div/a/img") 81 browser.execute_script("javascript:SubmitFormCarkind('fw_SelectCarkind')") 82 sharosentakubtn2 = browser.find_element_by_xpath(xpath) 83 sharosentakubtn2.click 84 xpath = ("/html/body/form/table[6]/tbody/tr[2]/td/div/select/option") 85 y272287sentaku2 = browser.find_element_by_xpath(xpath) 86 y272287sentaku2.click() 87 dropdown = browser.find_element_by_name("carKind") 88 select = Select(dropdown) 89 select.select_by_index(0) # 3番目のoptionタグを選択状態に 90 xpath = ("/html/body/form/table[7]/tbody/tr/td[2]/div/a/img") 91 browser.execute_script("javascript:SubmitFormSelect('fw_EditList_Select')") 92 #sharosentakubtn3 = browser.find_element_by_xpath(xpath) 93 #sharosentakubtn3.click 94 url = "http*****************************************" 95 elems = soup.find_all(href=re.compile("凍結防止剤散布車")) 96 #for elem in elems: 97 # print(elem.contents[0]) 98 # print(elem.attrs['href']) 99 # xpath = ("/html/body/form/table[12]/tbody/tr[2]/td[3]/div/a") 100 time.sleep(5) 101 #iframe = browser.find_element_by_name("mainFrame") 102 #browser.switch_to.frame(iframe) 103 #browser.execute_script("javascript:SubmitFormRireki('1','1','1711643','272287')") 104 browser.find_element_by_link_text("凍結防止剤散布車").Click() 105

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

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

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

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

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

guest

回答1

0

ベストアンサー

browser.find_element_by_link_text("凍結防止剤散布車").Click()と入力すると
AttributeError: 'WebElement' object has no attribute 'Click'と表示されます。

Click() ではなく click() では。(cが小文字)

投稿2022/04/15 08:41

int32_t

総合スコア20884

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

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

takumisato

2022/04/15 23:13

そのとおりでした!問題なく動作しました!初歩的なところを見逃していました。 自動化をあきらめかけていましたがもう一度挑戦してみます!ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問