質問: google スプレッドシートの関数 importxmlを使用して、該当ページの上部に表示された商品の価格と送料を取得したいと考えております。下記のコードで、検証したところ、商品特有のidがあるため、1つのURLでは有効ですが、他のURLではエラーが発生してしまいます。そこで、idの文字を指定して取得しようと試みましたが、何故か複数の値が返されてしまいます。 該当ページの最上部に表示された商品の価格及び送料を取得するためのコードをご教示ください。 該当URL https://www.ebay.com/sch/i.html?_nkw=Fender+Japan+2008+ST71-92TX+Natural&_in_kw=1&_ex_kw=&_sacat=619&_udlo=&_udhi=&LH_BIN=1&_ftrt=901&_ftrv=1&_sabdlo=&_sabdhi=&_samilow=&_samihi=&_sadis=15&_stpos=&_sargn=-1%26saslc%3D1&_fsradio2=%26LH_LocatedIn%3D1&_salic=104&LH_SubLocation=1&_sop=15&_dmd=1&_ipg=200&_fosrp=1 該当URLのxpath //*[@id="item521818bd41"]/ul[1]/li[1]/span/text() google スプレッドシートの数式 =IMPORTXML(A1,"//*[@id='item521818bd41']/ul[1]/li[1]/span/text()") 検証した事 =IMPORTXML(A1,"//li[contains(@id,'item')][1]")
回答: 価格 =IMPORTXML(A1,"//*[@id='ListViewInner']/li[2]//ul[1]/li[1]/span") 送料 =IMPORTXML(A1,"//*[@id='ListViewInner']/li[2]//ul[1]/li[3]/span/span") 次の商品を指定するときは●を3にする =IMPORTXML(A1,"//*[@id='ListViewInner']/li[●]//ul[1]/li[1]/span") ちなみに、googleスプレッドシートのimportxmlでアクセスすると、ユーザーエージェントが「Mozilla/5.0 (compatible; Google-Apps-Script)」に固定のようで、ドル表記のお金を取得することになります。 これは軽く調べた感じでは変更できない部分のようなので、日本円の値が欲しければ別の方法をとるほうがよいかと思います。