/ / Używanie = importXML w Dokumentach Google - xpath, google-spreadsheet

Używanie = importXML w Dokumentach Google - xpath, google-spreadsheet

Ze strony internetowej https://www.google.co.uk/finance?cid=704531 Próbuję zaimportować pola „Zasięg” i „52 tydzień”, a inni w tej grupie pośrodku. Spojrzałem na XPath i jestem tym bardzo zdezorientowany.

W komórce A1 mam https://www.google.co.uk/finance?cid=704531.

W komórce B1 mam

=importxml(A1,//*[@id="market-data-div"]/div[2]/div[1]/table[1]/tbody/tr[4]/td[1])

Ale wynikiem jest błąd.

Jakie jest prawidłowe wyrażenie XPath dla tej struktury HTML?

Odpowiedzi:

4 dla odpowiedzi № 1

Dom i <tbody/>

Wygląda na to, że utworzyłeś to wyrażenie XPath w Firebug lub podobnych narzędziach programistycznych. Podczas gdy HTML nie wymaga <tbody/> tagi, DOM robi; i te narzędzia programistyczne działają na DOM, a tym samym zawijają wiersze tabeli w takim elemencie. Różnicę można łatwo zobaczyć, patrząc na źródło strony (pobrane przez wget lub inne narzędzia, jeśli to konieczne) oraz strukturę przedstawioną przez Firebug.

Po prostu pomiń /tbody krok osi w wyrażeniu:

//*[@id="market-data-div"]/div[2]/div[1]/table[1]/tr[4]/td[1]

W każdym razie wolałbym pobrać komórki według opisu, który jest nieco słabszy w odniesieniu do zmian w sformułowaniu, ale o wiele bardziej odporny na zmiany w strukturze:

//*[@id="market-data-div"]//tr[td = "Vol / Avg."]/td[2]

Cytując wyrażenie

Drugi problem polega na zacytowaniu wyrażenia XPath w podwójnych cudzysłowach, więc na przykład użyj:

=importxml(A1,"//*[@id="market-data-div"]//tr[td = "Vol / Avg."]/td[2]")