Potrebujem zoškrabať kariérne stránky viacerých spoločností (s ich povolením).
Dôležité faktory pri rozhodovaní o tom, čo mám používať
- Denne by som zoškrabával okolo 2000 strán, takže potrebujem slušne rýchlo Riešenie
- Niektoré z týchto stránok naplnia údaje ajaxom po načítaní stránky.
- Môj webstack je Ruby / Rails s MySql atď.
- Scrapers som napísal už skôr pomocou scrapy (python) (+ selén pre stránky povolené ajax).
Moje pochybnosti
- Som zmätený, či by som mal ísť s pythonom (t. J. Scrapy + selén, myslím, že je to najlepšia alternatíva v pythone), alebo radšej niečo v rubíne (pretože celý môj kódový základ je v rubíne).
- Scrapy + selén je často pomalý, existujú v Ruby rýchlejšie alternatívy? (Toto by uľahčilo rozhodnutie) Najobľúbenejšia alternatíva Ruby s podporou pre načítané stránky Ajax sa zdá byť Watir Môže ktokoľvek komentovať jeho rýchlosť. Existujú aj nejaké iné rubínové alternatívy (napr. Mechanize / Nokogiri + niečo iné pre načítané stránky Ajaxu)
UPRAVIŤ
Nakoniec som použil Watir-webdriver + Nokogiri, aby som mohol pri ukladaní údajov využiť aktívny záznam. Nokogiri je pri získavaní údajov oveľa rýchlejšie ako Watir-webdriver.
Škrípanie by bolo rýchlejšie, ale rýchlosťkompromis nebol taký významný, ako zložitosť kompromisu pri manipulácii s rôznymi druhmi webových stránok v nešikovných prípadoch (napr. vyhľadávanie na niektorých cieľových stránkach zamerané na ajax), ktoré musím nevyhnutne prejsť).
Dúfajme, že to niekomu pomôže.
odpovede:
1 pre odpoveď č. 1Ak je rýchlosť dôležitá, môžete použiť Watir-webdriver klenot riadiť PhantomJS (bezhlavý prehliadač s podporou JavaScriptu). Otvorte ľubovoľnú stránku v PhantomJS a ak je watir-webdriver príliš pomalý na to, aby z neho údaje boli, môžete vykreslený HTML odovzdať do Nokogiri.
Čítaj viac:
- http://jkotests.wordpress.com/2013/08/21/watir-nokogiri-gem-published/
- http://zeljkofilipin.com/watir-nokogiri/
1 pre odpoveď č. 2
Mali by ste sa pozrieť na tohto sprievodcu Zabezpečenie indexového prehľadávania aplikácií AJAX publikované spoločnosťou Google, rozoberá schému prehľadávania AJAX, ktorú niektoré webové stránky podporujú.
Chceš hľadať #!
vo fragmente hash adresy URL to prehľadávači indikuje, že web podporuje schému prehľadávania AJAX a že server vráti snímku HTML stránky, keď je URL mierne upravená.