Portál AbcLinuxu, 14. května 2025 00:10

Dotaz: získání odkazu z HTML stránky

12.5.2015 14:33 Bernye
získání odkazu z HTML stránky
Přečteno: 274×
Odpovědět | Admin

Ahoj,

řeším problém se získáním obrázku z HTML stránky na základě výsledku hledání.

Konkrétněji mám skript, který na základě proměnných vyhledá např. na google.com obrázek. Já pak přes curl stáhnu html s výsledky a potřebuji z něho dostat adresu obrázku, který je na prvním místě.

Celé se to snažím koncipovat jako bash skript, ale na tomhle bodě jsem zamrzl. Tuším že by mohl pomoct nástroj xmllint, ale nemůžu na to přijít.

Poradí mi prosím někdo?

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

rADOn avatar 12.5.2015 15:14 rADOn | skóre: 44 | blog: bloK | Praha
Rozbalit Rozbalit vše Re: získání odkazu z HTML stránky
Odpovědět | | Sbalit | Link | Blokovat | Admin
Na to by melo stacit najit si ve strance "img src=". Cili egrem/awk/sed.
"2^24 comments ought to be enough for anyone" -- CmdrTaco
Tarmaq avatar 12.5.2015 15:30 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: získání odkazu z HTML stránky
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pokud to nechces resit jednoduchym grepovanim, jak naznacoval rADOn, ale najit si obrazek ve strukture, muzes na to vyuzit zmineny xmllint s pouzitim parametru --xpath. Tedy napr. xmllint --xpath 'string(//cesta/k/obrazkum/img[1]/@src)'
Don't panic!
12.5.2015 15:47 kolemjdoucí
Rozbalit Rozbalit vše Re: získání odkazu z HTML stránky
Odpovědět | | Sbalit | Link | Blokovat | Admin
1) grep na  "img " - vybere všechny řádky kde je v html vložený obrázek
2) grep na "imgres" - bybere z nich ty, která má google jako vyhledané obrázky
3) head -1 - vybere z nich první řádek
4) sed - tady si musíš napsat regulární výraz pro vybrání toho, co je mezi uvozovkami v src="...." parametru html tagu img

.. a máš svou adresu obrázku
wamba avatar 12.5.2015 18:01 wamba | skóre: 38 | blog: wamba
Rozbalit Rozbalit vše Re: získání odkazu z HTML stránky
Odpovědět | | Sbalit | Link | Blokovat | Admin
pokud nevadí použití Perl-u s příslušnou knihovnou, tak třeba
perl -MHTML::TreeBuilder -E 'my $tree = HTML::TreeBuilder->new();$tree->parse_file(shift ); say $tree->look_down(q{_tag} => q{img})->attr(q{src}) ' /tmp/pok.htm
This would have been so hard to fix when you don't know that there is in fact an easy fix.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.