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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Beautiful Soup

Beautiful Soupは、Pythonのライブラリの一つ。スクレイピングに特化しています。HTMLデータの構文の解析を行うために、HTMLタグ/CSSのセレクタで抽出する部分を指定することが可能です。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

selenium

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

Q&A

解決済

2回答

1174閲覧

pythonでseleniumを使ったスクレイピングについて

ponta_jam

総合スコア5

Beautiful Soup

Beautiful Soupは、Pythonのライブラリの一つ。スクレイピングに特化しています。HTMLデータの構文の解析を行うために、HTMLタグ/CSSのセレクタで抽出する部分を指定することが可能です。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

selenium

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

0グッド

0クリップ

投稿2022/03/21 13:42

編集2022/03/21 15:23

初心者です。
python3.91でseleniumを使ったスクレイピングがうまくいきません。
毎日の調査関係を自動入力させるためにWEBの入力画面まで遷移させたいところ、
ログインはうまくいきましたが画面が切り替わった後の【編集】ボタンをクリックしたいのですが、
それができません。ご教示ください。

【試したコード】
title_btn=driver.find_element_by_link_text('編集')
title_btn.click()

【エラー内容】
NoSuchElementException Traceback (most recent call last)
c:\Users*\Desktop\VSCODE*.ipynb Cell 16' in <module>
----> 1 title_btn=driver.find_element_by_link_text('編集')
2 title_btn.click()

File ~\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\remote\webdriver.py:569, in WebDriver.find_element_by_link_text(self, link_text)
547 """
548 Finds an element by link text.
549
(...)
562 element = driver.find_element_by_link_text('Sign In')
563 """
564 warnings.warn(
565 "find_element_by_link_text is deprecated. Please use find_element(by=By.LINK_TEXT, value=link_text) instead",
566 DeprecationWarning,
567 stacklevel=2,
568 )
--> 569 return self.find_element(by=By.LINK_TEXT, value=link_text)

NoSuchElementException: Message: no such element: Unable to locate element: {"method":"link text","selector":"編集"}
(Session info: chrome=99.0.4844.74)
Stacktrace:…

【サイトのhtml】 

<body class="null comm-page-detail-a02"> <div class="auraMsgBox auraLoadingBox" id="auraLoadingBox"> <div class="logo"></div> <div class="spinner"></div><span>Loading</span></div> <div class="" id="auraErrorMask"> <div class="auraErrorBox" id="auraError"><span><a id="dismissError" class="close">×</a>Sorry to interrupt</span> <div id="auraErrorMessage">CSS Error</div> <div id="auraErrorStack"></div> <div class="auraErrorFooter"><a href="das26964956?nocache=https%3A%2F%2Fwww.g-mis.mhlw.go.jp%2Fs%2Fdailysurvey%2Fa022r00000BGaXY%2Fdas26964956" id="auraErrorReload">Refresh</a></div> </div> </div> <script data-src="/jslibrary/1647542268000/canvas/CanvasRendering.js"></script> <script data-src="/jslibrary/1647542268000/ui-analytics-reporting/EclairNG.js"></script> <script src="/s/sfsites/l/%7B%22mode%22%3A%22PROD%22%2C%22app%22%3A%22siteforce%3AcommunityApp%22%2C%22fwuid%22%3A%22hXQ6H-a"></script> <script src="/s/sfsites/l/%7B%22mode%22%3A%22PROD%22%2C%22app%22%3A%22siteforce%3AcommunityApp%22%2C%22fwuid%22%3A%22hXQ6H-b"></script> <script src="/s/sfsites/auraFW/javascript/hXQ6H-x_YQB1RZ2gyQB4Mg/aura_prod.js"></script> <script src="/s/sfsites/l/%7B%22mode%22%3A%22PROD%22%2C%22app%22%3A%22siteforce%3AcommunityApp%22%2C%22serializationVersion%22%3A%221-2.5.13-236.1-c"></script> <script src="/s/sfsites/l/%7B%22mode%22%3A%22PROD%22%2C%22app%22%3A%22siteforce%3AcommunityApp%22%2C%22fwuid%22%3A%22hXQ6H-d"></script> <!--render facet: 84:0--> <!--render facet: 87:0--> <!--render facet: 92:0--> <!--render facet: 95:0--> <!--render facet: 99:0--> <!--render facet: 102:0--> <!--render facet: 104:0--> <!--render facet: 106:0--> <!--render facet: 110:0--> <!--render facet: 112:0--> <!--render facet: 115:0-->

 省略
<div style="height: 79px;" class="spacer" data-aura-rendered-by="406:0"></div>
<!--render facet: 330:0-->
<div tabindex="-1" style="width: 1440px;" class="body isPageWidthFixed-true" data-aura-rendered-by="331:0" aria-hidden="false">
<!--render facet: 3:255;a-->
<div data-aura-rendered-by="99:255;a" class="siteforceSldsOneColLayout siteforceContentArea" data-aura-class="siteforceSldsOneColLayout siteforceContentArea">
<div class="slds-col--padded comm-content-header comm-layout-column" data-aura-rendered-by="100:255;a">
<!--render facet: 101:255;a-->
</div>
<div class="slds-col--padded contentRegion comm-layout-column" data-aura-rendered-by="102:255;a">
<div data-region-name="content" data-item-id="7f50bbe1-69ca-4b95-916c-fb2e4f5d65f6" data-aura-rendered-by="96:255;a">
<div data-priority="0" data-item-id="07780056-4a6f-4028-b193-9612860824c3" class="ui-widget" data-aura-rendered-by="33:255;a">
<!--render facet: 25:255;a-->
<header data-aura-rendered-by="5:267;a" class="forceHighlightsPanel forceCommunityRecordHeadline" data-aura-class="forceHighlightsPanel forceCommunityRecordHeadline">
<div class="spinnerWrapper hideSpinner hideEl forceComponentSpinner" data-aura-rendered-by="8:267;a" data-aura-class="forceComponentSpinner">
<div role="alert" aria-hidden="true" class="indicator hideEl forceInlineSpinner" data-aura-rendered-by="11:267;a" data-aura-class="forceInlineSpinner">
<!--render facet: 12:267;a-->
</div>
</div>
<!--render facet: 24:267;a-->
<!--render facet: 109:377;a-->

<div role="group" class="slds-col slds-no-flex slds-grid slds-grid_vertical-align-center actionsContainer" data-aura-rendered-by="129:377;a"> <!-- workaround for W-2413659, remove once that bug is fixed --> <!--render facet: 1857:0--> <!--render facet: 1858:0--> <!-- workaround for W-2413659, remove once that bug is fixed --> <ul class="branding-actions slds-button-group slds-m-left--xx-small oneActionsRibbon forceActionsContainer" data-aura-rendered-by="1877:0" data-aura-class="oneActionsRibbon forceActionsContainer"> <li class="slds-button slds-button--neutral" data-aura-rendered-by="6864:0"> <!--render facet: 1889:0--> <a href="javascript:void(0);" title="編集" data-aura-rendered-by="1908:0" class="forceActionLink" data-aura-class="forceActionLink" role="button"> <div title="編集" data-aura-rendered-by="1909:0">編集</div> </a> </li>

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

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

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

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

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

otn

2022/03/21 14:41

HTML部分が画像なので、詳細不明。該当部分のHTMLをテキストでコピペしましょう。 【BeautifulSoupで取得したhtml】の部分は今回関係ないので、削除しておきましょう。
ponta_jam

2022/03/21 15:25

慣れてなくて申し訳ございません。修正してみましたが、いかがでしょか。 htmlもそのままコピペしたら文字数オーバーとなりましたので、間を省略しました。
guest

回答2

0

ベストアンサー

確認したHTMLと実際のHTMLが違うのでしょう。
実際に書いているプログラムが起動したChromeで確認したのでなく、手動で起動したブラウザで確認しただけでは?

title_btn=driver.find_element_by_link_text('編集')の直前に、
print(driver.page_source)するなどして、実際のHTMLを確認しましょう。

投稿2022/03/21 22:29

otn

総合スコア84507

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

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

ponta_jam

2022/03/22 12:08

ご指摘戴いた通り、print(driver.page_source)で確認したところ、一つ前の画面のhtmlになっているようです。 pythonで自動制御されているブラウザから検証で確認したのですが、取得したhtmlと異なっておりました。 この場合、これ以上進むことは難しいのでしょうか。 ちなみに、print(driver.current_url)で試してみましたが、やはり、開いている画面とは異なる一つ前の画面のURLを取得しています。
guest

0

タブ指定ができていなかったことで見ているhtmlと取得するhtmlに相違があることが分かりました。
driver.switch_to.window(driver.window_handles[1])でタブ指定して解決しました。
ありがとうございました。

投稿2022/03/23 09:30

ponta_jam

総合スコア5

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問