2013-06-19 13 views
13

Mam zamiar użyć webcrawling w aplikacji, nad którą obecnie pracuję. Zrobiłem kilka badań na temat Nutch i przeprowadziłem wstępny test z jego wykorzystaniem. Ale potem natknąłem się na scrapy. Ale kiedy zrobiłem jakieś wstępne badania i przejrzałem dokumentację o scrapy, stwierdziłem, że może ona przechwytywać tylko dane ustrukturyzowane (Musisz podać nazwę div, z której chcesz przechwycić dane). Backend aplikacji, którą tworzę, jest oparty na Pythonie i rozumiem, że scrapy są oparte na Pythonie, a niektóre sugerują, że scrapy są lepsze niż Nutch.Scrapy Vs Nutch

Moim wymaganiem jest przechwytywanie danych z ponad 1000 różnych stron internetowych i wyszukiwanie odpowiednich słów kluczowych w tych informacjach. Czy istnieje sposób, w jaki scrapy mogą spełniać te same wymagania.

1) Jeśli tak, czy możesz wskazać przykład, jak to zrobić?

2) lub Nutch + Solr jest najlepsza dla mojego wymogu

+3

Nazwa div nie jest wymagana do Scrapy, możesz zrobić wszystko, co chcesz. –

Odpowiedz

17

Scrapy będzie działać idealnie w twoim przypadku.

Nie jest wymagane, aby dać div nazw - można dostać wszystko, co chcesz:

Scrapy przychodzi z własnym mechanizmem wydobywania danych. Są to zwane selektory XPath (lub po prostu "selektory", w skrócie), ponieważ " " "wybierają" określone części dokumentu HTML określone przez wyrażenia XPath .

Ponadto można użyć BeautifulSoup i lxml do wyodrębniania danych z treści strony.

Poza tym scrapy jest oparty na skręconej i jest całkowicie asynchroniczny i szybki.

Istnieje wiele przykładów pająków do scrapy w SO - wystarczy przejrzeć pytania związane z tagami . Jeśli masz bardziej szczegółowe pytanie - po prostu zapytaj.

Nadzieję, że pomaga.

+0

Dzięki alecxe .. Spróbuję wtedy scrapy. Chyba muszę zrobić lepsze badania na ten sam temat. – Vidhu

+7

Niedawno pojawił się artykuł o użyciu [Scrapy with Solr] (http://searchhub.org/2013/06/13/indexing-web-sites-in-solr-with-python/). –

-7

Scrapy jest nadęty i przesada dla wielu zadań. Zaskakujące powolne. Jego kod jest delikatny, są ciągłe zmiany, które łamią retrokompatybilność. Jeśli korzystasz ze Scrapy, poświęcisz więcej czasu na próbę zrozumienia wewnętrznych elementów Scrapy, które wykonują zadania.

+6

Witaj Franco, nie zgadzam się ze stwierdzeniem, że scrapy są powolne. W ciągu około 2,5 godziny udało mi się zaindeksować około 25 000 stron z różnych witryn. Cieszę się z tego wskaźnika indeksowania. Scrapy może początkowo wyglądać nieco trudniej, ale kiedy zaczniesz go używać coraz więcej ... chciałbyś to .. – Vidhu

+2

Zrobiłem kilka robotów ze scrapy i zrobiłem kilka testów porównawczych do robotów indeksujących Golang, PHP, C i Java to samo zadanie. Rozwiązanie Pythona było prawie bliskie C używając lxml plus Scrapy, pozostałe były wolniejsze. Jedyną rzeczą do poprawienia, moim zdaniem, jest integracja oprogramowania pośredniczącego w niektórych przypadkach. Zintegrowaliśmy także modele Django również Tor'a bez żadnego problemu. –

+1

Nie zgadzam się z częścią "ciągła zmiana" i nie zgadzam się, że scrapy są trudne do nauczenia. W przeciwieństwie do tego, powiedziałbym, że scrapy są bardzo łatwe do rozpoczęcia. Dokumentacja jest również bardzo wyraźna. –