parsovanie HTML aj s CSS rubrika: Programování: PHP

6 coolmip
položil/-a 16.5.2016

Ahojte,

potrebujem parsovat HTML (v PHP, node, go alebo v inom lahkom jazyku). Potrebujem potom spravit query na jenaky objekt napriklad .cervena alebo #id. K danemu objektu nasledne potrebujem dostat jeho CSS styly, ktore boli natiahnute v HTML.
priklad:

<style>
.a {width: 100px}
.b {color: red}
a.green {color: green; display: block}
</style>
<body>
  <div id="test">
    <div class="a">
      <div class="b">
        <a class="green">aaaa</a>
      </div>
    </div>
  </div>
</body>

No a potom potrebujem dostat CSS k "a.green" a moja predstava je, ze dostanem string/objekt s "width: 100px, color: green, display: block"

cez phantomjs sa bojim, ze to bude priliz pomale...

Komentáře

  • Anonym : Ad "cez phantomjs sa bojim, ze to bude priliz pomale...": už si to zkusil ať máš co porovnávat? 17.5.2016
  • coolmip : Ano skusal som to. Zakazal som mu nacitavat obrazky a ked bol cely web nacitany, tak som si vytiahol css pre element. Trvalo to 8sekund na mojej virtualke. Tak som to skusil na ostrom serveri a boli to rovnake. 19.5.2016
  • ivoszz : Těch 8 sekund je hodně zvláštních. Typicky to jsou stovky milisekund včetně stáhnutí z webu a běhu javascriptu. Dlouhodobě používám několik testů, žádný z nich netrvá déle než 5 s a typicky to jsou 3-4 krokové scénáře přes internet (stažení homepage, zadání přihlašovacích údajů, klik na login, stažení následující stránky, klik a stažení další stránky, konec). Na většině stránek je navíc JS. Pokud tam máš JS který manipuluje s DOMem, nic jiného než headless browser ti nepomůže. Pokud ne, stačí JSDOM nebo Cheerio. 20.5.2016
odkaz
7 maryo
odpověděl/-a 19.5.2016
 
upravil/-a 19.5.2016

v JS jsdom v node.js nebo electron(nodejs+chrome)/NW.js(nodejs+webkit), phantomjs nebo jakejkoliv další browser.
v PHP DOMDocument/SimpleXML + xpath případně Symfony/CssSelector. Akorát je problém s externíma stylama, ty by se musely parsovat, třeba pomocí toho, co píše taco, číst by se to pak dalo z těch elementů z jejich inline stylů, ale jestli něčemu fakt věřit, tak je to browser.

Komentáře

  • coolmip : dik, idem skusit 20.5.2016

Pro zobrazení všech 6 odpovědí se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.