Ik wil een vanuit een webpagina bepaalde gegevens exporteren in een Google Spreadsheet.
Normaal haal ik de gegevens op via een "Full Xpath" op een specifieke class. Helaas is dat dit keer niet mogelijk omdat de tabel elke keer verschilt.
De gegevens zitten verwerkt in een eenvoudige table structuur:
<table>
<tbody>
// Heel veel TR en TDs //
<tr>
<td>
<a href="/wiki/Omzet" title="Omzet">Omzet</a>
</td>
<td>
€ 19,5 miljard (2019)
</td>
</tr>
</table>
</tbody>
Het probleem zit hem in het feit dat als ik de Xpath kopieer van die 500,- dit op de ene pagina anders is dan de andere.
Philips - /html/body/div[3]/div[3]/div[4]/div/table[1]/tbody/tr[11]/td[2]/text()
Shell - /html/body/div[3]/div[3]/div[4]/div/table[1]/tbody/tr[12]/td[2]/text()
Bedrijf X - /html/body/div[3]/div[3]/div[4]/div/table[1]/tbody/tr[18]/td[2]/text()
Bestaat er een Google Spreadsheet formule die?
- Op de betreffende wikipediapagina zoekt naar de <tr> waar de <td> met de <a title="Omzet"> in zit?
- Vervolgens wanneer de formule dat heeft gevonden, wordt eerstvolgende <td> met "€ 19,5 miljard (2019)" geexporteerd naar mijn Spreadsheet?
- Extract Gegevens van Tabel in Spreadsheet
-
19-02-2020, 13:27 #1
- Berichten
- 1.832
- Lid sinds
- 19 Jaar
Extract Gegevens van Tabel in Spreadsheet
-
In de schijnwerper
Linkbuilding uitbesteden - 25 jaar ervaring - Zie behaalde resultatenAdvertentieruimteStartpagina script V2.1 - WP plugin - Vernieuwd - Vele opties - V2.1 NU LIVEPHP scriptsHandmatig linkbuilden aangeboden (vanaf 7,50 per link)Freelance / Werk!!!!! Uniek portfolio met 515 .NL domeinnamen !!!!!Domein te koop -
19-02-2020, 13:51 #2
- Berichten
- 5.661
- Lid sinds
- 18 Jaar
Re: Extract Gegevens van Tabel in Spreadsheet
Dat moet je dan inderdaad per item aanpassen. Lastig... Ik ben geen expert in Google Spreadsheets (die zijn er overigens genoeg op Fiverr!) maar gebruik meestal een kortere XPath.
Heb je al eens gekeken naar het Wikidata project? Heel veel tabulaire data van WikiPedia kun je namelijk ook via een API van Wikidata halen: https://www.wikidata.org/wiki/Wikidata:Data_access/nl
Tools: https://www.wikidata.org/wiki/Wikidata:Tools/Query_data
Wat uitleg: https://rozhon.com/sheets-for-market...-and-wikidata/
-
23-02-2020, 14:03 #3
- Berichten
- 4
- Lid sinds
- 5 Jaar
Re: Extract Gegevens van Tabel in Spreadsheet
Dit kan met behulp van een combinatie van meerdere formules. Ten eerste kun je aangezien het een tabel betreft de formule IMPORTHTML() gebruiken. Deze parset de HTML table en returned een matrix. Vervolgens kun je met LOOKUP() de Omzet zoeken in die matrix. Dus dan krijg je:
PHP Code:=LOOKUP("Omzet"; IMPORTHTML("hier de url"; "table"))
PHP Code:=LOOKUP("Omzet"; IMPORTHTML("hier de url"; "table"; 1))
-
25-02-2020, 08:51 #4
- Berichten
- 1.832
- Lid sinds
- 19 Jaar
Re: Extract Gegevens van Tabel in Spreadsheet
Dit kan met behulp van een combinatie van meerdere formules. Ten eerste kun je aangezien het een tabel betreft de formule IMPORTHTML() gebruiken. Deze parset de HTML table en returned een matrix. Vervolgens kun je met LOOKUP() de Omzet zoeken in die matrix. Dus dan krijg je:
PHP Code:=LOOKUP("Omzet"; IMPORTHTML("hier de url"; "table"))
PHP Code:=LOOKUP("Omzet"; IMPORTHTML("hier de url"; "table"; 1))
Dan zou deze code toch moeten werken?
Code:=LOOKUP("Omzet";IMPORTHTML("https://nl.wikipedia.org/wiki/FrieslandCampina";"table";1))
-
25-02-2020, 12:16 #5
- Berichten
- 4
- Lid sinds
- 5 Jaar
Re: Extract Gegevens van Tabel in Spreadsheet
Ik had er even geen rekening mee gehouden dat de data ongesorteerd was. Als er een lege rij tussen zit, zoals bij de tabel van die Wikipedia-pagina het geval is, werkt LOOKUP() niet omdat deze een gesorteerde rij verwacht. Daarom moet je VLOOKUP() gebruiken:
PHP Code:=VLOOKUP("Omzet"; IMPORTHTML("https://nl.wikipedia.org/wiki/FrieslandCampina"; "table"; 1); 2; FALSE)
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic