jiří koutný - collabim: jak scrapujeme 700 000 stránek vyhledávačů denně

Post on 09-Jan-2017

155 Views

Category:

Internet

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Collabim: jak scrapujeme 700 000 stránek vyhledávačů denně

Jiří Koutný

Collabim a Serpo

700+klientů

6+let

6členů týmu

měření pozic ve vyhledávačích a sledování konkurence

Collabim

Serpo.cz

● Denně 300 000 sledovaných frází● Denně 700 000 stránek vyhledávání (~70 GB)● 8 000 proxies● 170 GB MySQL● 40 GB ElasticSearch

Data

Desatero scrapování Google1. Public/shared proxies jsou k ničemu2. Lepší více proxies než Selenium/PhantomJS3. Ideálně 1 dotaz za 5 - 10 minut4. XPath v kombinaci s regulárními výrazy je mocná zbraň5. Vždycky si ukládejte původní HTML source6. 100% úspěšnost je zbytečná7. Spoléhejte se jen na sebe8. PHPčko je “good enough” a “fast enough”9. MultiCURL/guzzlephp

10. Doctrine2 je fajn na frontend, ale ne do workerů

CollabimApp

MailQueueBilling

CollabimTracker

Serpo

Microservices!

Serpo: Jak ukládat historická data?

20 GB každých 14 dnů

jednou je uložíme a už se němění

nechceme je zálohovat pořád dokola

CollabimTracker

Serpo

Hlavní bolest - ElasticSearch - Red is dead!● Verzi < 2.0 nedoporučuji, půlka věcí je jinak● Type nejde ani promazat ani celý smazat (jen index)● Žádné BATCH DELETE by condition● JSON query DSL ☠ !● Indexujete moc rychle? Spadne● Kill query neexistuje● Spadlý node se oživuje hodinu až dvě● Žádný EXPLAIN ani profiling● UPDATE zahodí celý původní dokument a vytvoří nový -> pomalé● Agregace jsou hodně omezené

Čím nahradit ElasticSearch?● Málo zápisů, hodně čtení● Hodně agregací, průniky množin, vztahy mezi weby● Non-blocking/batch query knihovna pro PHP● MongoDB?● PostgreSQL?● …?

Díky! Jiří Koutnýkoutny@serpo.cz

top related