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

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

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

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

Beautiful Soup

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

Python

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

Q&A

解決済

1回答

2307閲覧

スクレイピングで部分的に一致した文字列の要素の次の要素を取り出したい

nto

総合スコア1438

スクレイピング

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

Beautiful Soup

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

Python

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

0グッド

1クリップ

投稿2020/04/29 07:43

編集2020/04/29 07:43

次の様なhtmlがあります。
beautifulsoupでこの中から「0120」という文字列が含まれる要素を抽出し、
その次のtd内のsubmitを取得したいのですがうまく取得出来ません。

参照:bs4を用いて特定の文字列を含むタグを全て取得したいです
こちら等も参照しましたが、該当の文字列を含む要素までは取得できましたが
目的までにたどり着く事が出来ませんでした。

html

1<table> 2 <tr bgcolor="red"> 3 <form name="form1" method="post" action="/any.html"> 4 <input type="hidden" name="hoge" value="any"> 5 <td nowrap> 6 エニー 7 </td> 8 <td nowrap> 9 フガ1234ホゲピヨ 10 </td> 11 <td nowrap> 12 <input type="submit" value="選択" name="dital"> 13 </td> 14 </form> 15 </tr> 16 17 <tr bgcolor="blue"> 18 <form name="form1" method="post" action="/any.html"> 19 <input type="hidden" name="hoge" value="any"> 20 <td nowrap> 21 エニー 22 </td> 23 <td nowrap> 24 フガ5678ホゲピヨ 25 </td> 26 <td nowrap> 27 <input type="submit" value="選択" name="dital"> 28 </td> 29 </form> 30 </tr> 31 32 <tr bgcolor="green"> 33 <form name="form1" method="post" action="/any.html"> 34 <input type="hidden" name="hoge" value="any"> 35 <td nowrap> 36 エニー 37 </td> 38 <td nowrap> 39 フガ0120ホゲピヨ 40 </td> 41 <td nowrap> 42 <input type="submit" value="選択" name="dital"> 43 </td> 44 </form> 45 </tr> 46</table>

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

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

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

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

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

meg_

2020/04/29 08:24

「該当の文字列を含む要素までは取得できました」というそのコードを掲載してください。
nto

2020/04/29 08:35

既に参照として掲載しているリンク先の回答のコードがそれとなります。
guest

回答1

0

自己解決

スムーズなコードではないかもしれませんが自己解決が出来ました。

for文内のelemsがbs4.elementではないと思いこんでしまっておりました。

python

1html = ''' 2 省略 3''' 4 5soup = BeautifulSoup(html, 'html.parser') 6td_lst = soup.find_all('td') 7for elem in td_lst: 8 if '0120' in str(elem.string): 9 tmp = elem 10 break 11 12target = tmp.find_next()

投稿2020/04/29 10:32

編集2020/04/29 10:35
nto

総合スコア1438

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問