0

ウェブサイトhttp://www.findagrave.com/cgi-bin/fg.cgi?page=gr&GScid=97961&GRid=22682396から、出生、死亡、バイオ、場所などのテキストデータだけを抽出しようとしています。セクションによって異なる行/列に作成されます。FindAGrave URL を入力して上記のデータを抽出できるスプレッドシートを用意したいと考えています。私はhere Using =importXML in Google Docsを読んで、説明でそれを行うことができます。そこから、Xpath tbody を省略することを学びました。これにより、インポートが正常に機能しましたが、説明は使用されませんでした。説明を使用した方が効率的かどうかは確かです。他の人がテーブルからデータをインポートする方法を知りたいだけです。ありがとう

これが私がこれまでに得たものです。これにより、出生情報が抽出され、行に配置されます。1 つの問題は、各データの間に余分なセルが追加されることです。

=IMPORTXML("http://www.findagrave.com/cgi-bin/fg.cgi?page=gr&GScid=97961&GRid=22682396", "//html/body/table/tr/td[3]/table/tr[4]/td[1]/table/tr/td/table/tr/td/table/tr[1]/td[2]")

結果

Dec. 2, 1882        Humphreys County        Tennessee, USA

更新:コードに沿っていくつかのプロセスを作成したと思います。これは私が今取り組んでいるものです。

=IMPORTXML("http://www.findagrave.com/cgi-bin/fg.cgi?page=gr&GScid=97961&GRid=22682396", "//*[@class='gr'][1]//tr/td/table/tr/td/table/tr[1]/td[1]")
=IMPORTXML("http://www.findagrave.com/cgi-bin/fg.cgi?page=gr&GScid=97961&GRid=22682396", "//*[@class='gr']//tr/td/table/tr/td/table/tr[1]/td[2]/text()[1]")
=IMPORTXML("http://www.findagrave.com/cgi-bin/fg.cgi?page=gr&GScid=97961&GRid=22682396", "//*[@class='gr']//tr/td/table/tr/td/table/tr[1]/td[2]/text()[2]")
=IMPORTXML("http://www.findagrave.com/cgi-bin/fg.cgi?page=gr&GScid=97961&GRid=22682396", "//*[@class='gr']//tr/td/table/tr/td/table/tr[1]/td[2]/text()[3]")
=IMPORTXML("http://www.findagrave.com/cgi-bin/fg.cgi?page=gr&GScid=97961&GRid=22682396", "//*[@class='gr']//tr/td/table/tr/td/table/tr[1]/td[2]/text()[4]")

=IMPORTXML("http://www.findagrave.com/cgi-bin/fg.cgi?page=gr&GScid=97961&GRid=22682396", "//*[@class='gr'][1]//tr/td/table/tr/td/table/tr[2]/td[1]")
=IMPORTXML("http://www.findagrave.com/cgi-bin/fg.cgi?page=gr&GScid=97961&GRid=22682396", "//*[@class='gr']//tr/td/table/tr/td/table/tr[2]/td[2]/text()[1]")
=IMPORTXML("http://www.findagrave.com/cgi-bin/fg.cgi?page=gr&GScid=97961&GRid=22682396", "//*[@class='gr']//tr/td/table/tr/td/table/tr[2]/td[2]/text()[2]")
=IMPORTXML("http://www.findagrave.com/cgi-bin/fg.cgi?page=gr&GScid=97961&GRid=22682396", "//*[@class='gr']//tr/td/table/tr/td/table/tr[2]/td[2]/text()[3]")
=IMPORTXML("http://www.findagrave.com/cgi-bin/fg.cgi?page=gr&GScid=97961&GRid=22682396", "//*[@class='gr']//tr/td/table/tr/td/table/tr[2]/td[2]/text()[4]")

結果:

Birth: 
Nov. 8, 1948
Benton
Saline County
Arkansas, USA

Death: 
Jan. 6, 2006
Tulsa
Tulsa County
Oklahoma, USA

このデータをコード内で分割する方法はありますか?

4

2 に答える 2

2

次の式

=IMPORTXML(
"http://www.findagrave.com/cgi-bin/fg.cgi?page=gr&GScid=97961&GRid=22682396",
"//html/body/table/tr/td[3]/table/tr[4]/td[1]/table/tr/td/table/tr/td/table/tr[position()<=2]/td/text()"
)

戻り値

Birth: 
Nov. 8, 1948
Benton
Saline County
Arkansas, USA
Death: 
Jan. 6, 2006
Tulsa
Tulsa County
Oklahoma, USA

より短い代替案、

=IMPORTXML(
"http://www.findagrave.com/cgi-bin/fg.cgi?page=gr&GScid=97961&GRid=22682396", 
"//tr[4]/td[1]//tr[position()<=2]/td/text()"
)

同じ結果を返します

于 2016-09-12T05:36:15.523 に答える