Fórum Root.cz
Hlavní témata => Software => Téma založeno: 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ě =IMPORTXML("https://www.titulky.com"; "//title")
Výsledkem je #N/A Importovaný obsah XML nelze analyzovat
Může mi někdo vysvětlit proč?
-
Kolik sekund jsi nad tím strávil, než ses obrátil sem? :o
-
Je html kod tej stranky validny xml kod?
-
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.
-
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
-
Tak jsem to vyřešil. Vadí tomu IE styly. Kurňa to ani 3600 sekund nebylo
-
Jiřin: Můžeš to prosím rozvést? Jak jsi ty styly obešel? Díky.
-
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
-
vrací server stejnou odpověď? (jestli gůgl IP nevrací fejky a normálně to co má, to co vidíš ty)
-
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.
-
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.
-
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.
-
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čí
-
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?
-
konkrétně =IMPORTXML("https://www.titulky.com"; "//title")
cracwler očividně RSS netahá, dle URL tahá titulní stránku z titulky.com
-
Sorry, já to nevysvětlil pořádně. Nejde o RSS.
-
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.
-
RSS krásně řeší nové titulky, ale už ne rozpracované titulky nebo podrobné statistiky.
-
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.
-
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.
-
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
-
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).
-
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í.