Fórum Root.cz

Hlavní témata => Software => Téma založeno: cracwler 04. 01. 2018, 19:44:59

Název: IMPORTXML z Titulky.com
Přispěvatel: cracwler 04. 01. 2018, 19:44:59
Pokouším se importovat do sešitu v Google Docs data z webu titulky.com pomocí funkce importxml()

konkrétně
Kód: [Vybrat]
=IMPORTXML("https://www.titulky.com"; "//title")
Výsledkem je
Kód: [Vybrat]
#N/A Importovaný obsah XML nelze analyzovat
Může mi někdo vysvětlit proč?
Název: Re:IMPORTXML z TITULKY.COM
Přispěvatel: . 04. 01. 2018, 20:01:12
Kolik sekund jsi nad tím strávil, než ses obrátil sem?  :o
Název: Re:IMPORTXML z TITULKY.COM
Přispěvatel: dw 04. 01. 2018, 20:05:16
Je html kod tej stranky validny xml kod?
Název: Re:IMPORTXML z TITULKY.COM
Přispěvatel: cracwler 04. 01. 2018, 20:36:26
dw: Předpokládám, že validní XML to nebude, jako většina ostatních, které ale ta funkce naimportuje.

. : Čistýho času? Asi 3600 sekund.
Název: Re:IMPORTXML z TITULKY.COM
Přispěvatel: jiřin 04. 01. 2018, 23:38:57
No tak na to nelze pustit xpath query. Chyba není na vašem přijímači. To je zajímavá funkce, díky za tip

Název: Re:IMPORTXML z TITULKY.COM
Přispěvatel: jiřin 04. 01. 2018, 23:59:56
Tak jsem to vyřešil. Vadí tomu IE styly. Kurňa to ani 3600 sekund nebylo
Název: Re:IMPORTXML z TITULKY.COM
Přispěvatel: cracwler 05. 01. 2018, 05:52:41
Jiřin: Můžeš to prosím rozvést? Jak jsi ty styly obešel? Díky.
Název: Re:IMPORTXML z TITULKY.COM
Přispěvatel: jiřin 05. 01. 2018, 08:51:59
Vzal jsem zdroják, vložil do souboru na hostingu a postupně jsem odstraňoval částí kódu. Odstranil jsem ten komentář o autorovi, ten tam nemá co dělat, pak jsem upravil tag html (nelíbilo se to validátoru) a potom jsem odstranil styly pro IE. Teprve potom to začala fungovat. Tipnul bych si, že vadí ten komentář a ie styly. Čili nejspíš ta stránka uvedeným způsobem bez prostředníka, který by upravil zdroják nebude lze použít. Ale můžu pro tebe udělat placenou službu, která tu stránku předžvejká a potom ti ji poskytne bez uvedených součástí 8)  :D
Název: Re:IMPORTXML z TITULKY.COM
Přispěvatel: hontelus 06. 01. 2018, 18:17:32
vrací server stejnou odpověď? (jestli gůgl IP nevrací fejky a normálně to co má, to co vidíš ty)
Název: Re:IMPORTXML z TITULKY.COM
Přispěvatel: cracwler 07. 01. 2018, 17:43:42
hontelus: Nevím jak to zjistit.

jiřin: Díky za nabídku. Kolik by to stálo? ;D Mně ošklivej skriptík, který to vyřeší stál čtyři řádky kódu. Když jsem ho přepsal tak, že by ho mohl Robert C. Martin dát do dalšího vydání do Clean Code, tak padesát.  8) Nicméně, tvoje rada mě nakopla správným směrem. Dík.
Název: Re:IMPORTXML z TITULKY.COM
Přispěvatel: Kit 07. 01. 2018, 18:02:11
hontelus: Nevím jak to zjistit.

jiřin: Díky za nabídku. Kolik by to stálo? ;D Mně ošklivej skriptík, který to vyřeší stál čtyři řádky kódu. Když jsem ho přepsal tak, že by ho mohl Robert C. Martin dát do dalšího vydání do Clean Code, tak padesát.  8) Nicméně, tvoje rada mě nakopla správným směrem. Dík.

Když ze 4 řádek uděláš 50, tak už to moc čisté asi nebude.
Název: Re:IMPORTXML z TITULKY.COM
Přispěvatel: Kit 07. 01. 2018, 18:37:36
Tak jsem si zkusil stáhnout XML https://www.titulky.com/rss/titulky_rss.xml (https://www.titulky.com/rss/titulky_rss.xml) a parser mi to normálně sežral. Žádné microsoftí styly tam nevidím.
Název: Re:IMPORTXML z TITULKY.COM
Přispěvatel: jiřin 07. 01. 2018, 19:08:03
Jde o to, že ta funkce umí pomocí xpath query rozdělat stránku na součástky. Můžeš si nechat zobrazit všechny odkazy nebo některé odkazy, divy, odstavce apod. Ten hack na styly pro Internet explorer jí nesvědčí
Název: Re:IMPORTXML z TITULKY.COM
Přispěvatel: Kit 07. 01. 2018, 19:20:39
Jde o to, že ta funkce umí pomocí xpath query rozdělat stránku na součástky. Můžeš si nechat zobrazit všechny odkazy nebo některé odkazy, divy, odstavce apod. Ten hack na styly pro Internet explorer jí nesvědčí

Jenže já jsem v tom XML žádné styly nenašel, natož nějaké explorerové hacky. Nespletl sis náhodou URL?
Název: Re:IMPORTXML z TITULKY.COM
Přispěvatel: ByCzech 07. 01. 2018, 21:20:46
konkrétně
Kód: [Vybrat]
=IMPORTXML("https://www.titulky.com"; "//title")

cracwler očividně RSS netahá, dle URL tahá titulní stránku z titulky.com
Název: Re:IMPORTXML z TITULKY.COM
Přispěvatel: jiřin 07. 01. 2018, 21:40:42
Sorry, já to nevysvětlil pořádně. Nejde o RSS.
Název: Re:IMPORTXML z TITULKY.COM
Přispěvatel: Kit 07. 01. 2018, 22:05:25
Sorry, já to nevysvětlil pořádně. Nejde o RSS.

Je na té doméně snad nějaké jiné XML? To RSS by se pro tvůj účel určitě hodilo nejlépe.
Název: Re:IMPORTXML z TITULKY.COM
Přispěvatel: cracwler 07. 01. 2018, 22:57:53
RSS krásně řeší nové titulky, ale už ne rozpracované titulky nebo podrobné statistiky.
Název: Re:IMPORTXML z TITULKY.COM
Přispěvatel: Kit 07. 01. 2018, 23:45:18
RSS krásně řeší nové titulky, ale už ne rozpracované titulky nebo podrobné statistiky.

Jenže když parsuješ HTML, tak to nemůžeš parsovat jako XML. Použij HTML parser.
Název: Re:IMPORTXML z TITULKY.COM
Přispěvatel: cracwler 08. 01. 2018, 07:40:46
Citace
Jenže když parsuješ HTML, tak to nemůžeš parsovat jako XML. Použij HTML parser.

Právě že můžu. Výhoda importxml() je v tom, že si můžu pomoxí XPATH vybrat, co chci. Importhtml() beze jenom tabulky a seznamy. Navíc spolehlivě zničí odkazy, tzn. že parametr href z nich pomocí té funkce nedostanu.
Název: Re:IMPORTXML z TITULKY.COM
Přispěvatel: jiřin 08. 01. 2018, 08:24:26
Citace
Jenže když parsuješ HTML, tak to nemůžeš parsovat jako XML. Použij HTML parser.
Je nějaký důvod, proč by to nebylo možné? Je to značkovací jazyk podobně jako xml, má nějakou strukturu, kterou lze logicky procházet. XML řeší, aby dokument měl striktní strukturu, ale neřeší značky, HTML naopak řeší, aby dokument obsahoval určité značky a strukturu má podobnou. Nemají náhodou společného předka? Ale hlavně ta funkce opravdu funguje a lze ji uvedeným způsobem použít. Určitě to někdy využiju
Název: Re:IMPORTXML z TITULKY.COM
Přispěvatel: Pako 08. 01. 2018, 16:22:30
Citace
Jenže když parsuješ HTML, tak to nemůžeš parsovat jako XML. Použij HTML parser.
Je nějaký důvod, proč by to nebylo možné? Je to značkovací jazyk podobně jako xml, má nějakou strukturu, kterou lze logicky procházet. XML řeší, aby dokument měl striktní strukturu, ale neřeší značky, HTML naopak řeší, aby dokument obsahoval určité značky a strukturu má podobnou. Nemají náhodou společného předka? Ale hlavně ta funkce opravdu funguje a lze ji uvedeným způsobem použít. Určitě to někdy využiju

Protože HTML může, ale nemusí být zároveň XML... tato idea (tj. HTML striktně splňujícího XML požadavky) byla odmítnuta ve prospěch HTML 5. A XML parser s ne-XML daty prostě jako takový pracovat neumí (i když je určitě možné knihovnu co implementuje XML parser ho takto rozšířit, ale pak už to není jen XML, ale i HTML parser).
Název: Re:IMPORTXML z Titulky.com
Přispěvatel: cracwler 08. 01. 2018, 19:26:13
Abych uzavřel teoretickou debatu - funkce importxml v Google Docs zkrátka umí importovat webovou stránku.

Zpět k problému: bez předžvýkaní se titulky.com do Google Docs plně nenaimportují.