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

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

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

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

XPath(XML Path)

XML Path Language (XPath; XMLパス言語)は、マークアップ言語 XML に準拠した文書の特定の部分を指定する言語構文の事をいいます。XPathはXMLとは別の構文を使用します。XMLドキュメントの抽象、論理ストラクチャ上で動作します。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

4回答

1155閲覧

Xpathでtrタグ外のtdの値を取得したい

k.mars

総合スコア2

スクレイピング

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

XPath(XML Path)

XML Path Language (XPath; XMLパス言語)は、マークアップ言語 XML に準拠した文書の特定の部分を指定する言語構文の事をいいます。XPathはXMLとは別の構文を使用します。XMLドキュメントの抽象、論理ストラクチャ上で動作します。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2020/11/16 07:24

編集2020/11/17 05:07

Xpathでtrタグ外のtdの値を取得したい

以下のようなテーブルで12行目のtdの値を取得したいのですが、うまくいきません。

html

11. 0. <tbody> 22. 0. <tr>...</tr> 33. <tr> 44. <th>...</th> 55. <td>...</td> 66. </tr> 77. <tr>...</tr> 88. <tr>...</tr> 99. <tr>...</tr> 1010. <tr>...</tr> 1111. <th>...</th> 1212. <td>...</td> 1313. <tr>...</tr> 1414. <tr>...</tr> 1515. <tr>...</tr> 1616. </tbody>

3行目から6行目のようなtrタグ内のtdは
//*[@id='infotablefont']//tr[2]/td[1]
のように取得出来るのですが、12行目のようなtrタグ外のtdの取得方法がわかりません。
よろしくお願いします。

補足情報(FW/ツールのバージョンなど)
swift5,xcode12
パーサ:Kanna

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

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

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

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

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

nto

2020/11/17 07:58 編集

一般的にはtr要素の外にtd要素が出現する様なソースの書き方はありません。 tdはtrの中であることが前提のタグです。 ソースの見間違いや取得のミスがないか今一度確認した方が良さそうです。
guest

回答4

0

自己解決

と記述することで、無事tdの値を取得することができました。
ありがとうございます。

投稿2020/11/20 04:57

k.mars

総合スコア2

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

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

0

と記述することで、tdの値を無事、取得することができました。
ありがとうございます。

投稿2020/11/20 03:22

k.mars

総合スコア2

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

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

0

と記述することで、tdの値を無事、取得することができました。
ありがとうございます。

投稿2020/11/20 03:14

k.mars

総合スコア2

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

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

0

スクレイピングする際の原則としては、パースする直前の生のHTMLを表示させて、それを見て要素を特定するXPathあるいはCSSセレクタを考えます。

投稿2020/11/16 08:37

otn

総合スコア84798

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

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

k.mars

2020/11/16 09:15

生のHTMLを表示させることは出来たのですが、そこから要素を特定するxpathを表示するにはどうすれば良いでしょうか? Googleの開発/管理からソースコードを表示させ、生のHTMLのソースコード上で検証を行い、Copy Xpathとするのでしょうか? よろしくお願いします。
otn

2020/11/16 09:23

> Googleの開発/管理からソースコードを表示させ、生のHTMLのソースコード上で検証を行い、Copy Xpathとするのでしょうか? ブラウザの開発者ツールのことでしょうか? パースする直前のHTMLをファイルに落として、ブラウザからそのファイルを開いて、、、ということであれば、そういう方法もありますね。やったこと無いですが。
k.mars

2020/11/16 10:01

通常、生のHTMLを表示させた後、要素を特定するxpathを表示させるにはどのようにするものなのでしょうか?
otn

2020/11/16 10:15

通常かどうか知りませんが、普通にHTMLを見て特定方法を考えます。
k.mars

2020/11/16 10:29

スクレイピングしようとしている箇所がhttps://www.jma.go.jp/jp/week/322.htmlという気象庁のページの386行目の <td class="for" nowrap>晴時々曇<br><img src="img/101.png" align="middle" width="60" title="晴れ時々曇り" alt="晴れ時々曇り"> </td> という箇所(中部・南部の18日の「晴時々曇り」という箇所)であったとすると、xpathの記法はどのようになるのでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問