Napisałem robota jest wykonywana przy użyciu scrapy,
teraz chcę ją kontrolować przez webapp Django, to znaczy:Jak skonfigurować i uruchomić Scrapy pająka programowo (adresy i ustawienia)
- Set 1 lub kilka
start_urls
- Set 1 lub kilka
allowed_domains
- Set
settings
wartości - Uruchom pająk
- Zatrzymaj/wstrzymaj/wznów pająk
- pobierz niektóre statystyki podczas działania
- pobierz niektóre statystyki po ukończeniu pająka.
Na początku myślałem scrapyd powstał za to, ale po przeczytaniu doc, wydaje się, że jest to bardziej demon stanie zarządzać „pająki zapakowanych” aka "jaja scrapy; i że wszystkie ustawienia (start_urls
, allowed_domains
, settings
) muszą wciąż być zakodowane na stałe w samym "jajku do scrapy"; więc nie wygląda na rozwiązanie mojego pytania, chyba że coś przeoczyłem.
Spojrzałem również na to pytanie: How to give URL to scrapy for crawling?; Ale najlepsza odpowiedź na wiele adresów URL jest kwalifikowana przez autora himeslf jako "brzydki hack", obejmujący niektóre podprocesy Pythona i skomplikowaną obsługę powłoki, więc nie sądzę, aby znaleźć rozwiązanie tutaj. Ponadto może działać dla start_urls
, ale wydaje się, że nie zezwala na allowed_domains
lub settings
.
Potem rzuciłem okiem na scrapy webservices: Wydaje się być dobrym rozwiązaniem do pobierania statystyk. Jednak to wymaga jeszcze uruchomione pająka, a nie wskazówka zmienić settings
Istnieje kilka pytań na ten temat, żaden z nich nie wydaje się zadowalająca:
- using-one-scrapy-spider-for-several-websites ten wydaje nieaktualne, jak scrapy ma ewoluował dużo od 0.7
- creating-a-generic-scrapy-spider Nie zaakceptowano odpowiedzi, wciąż mówię o poprawianiu parametrów powłoki.
Wiem, że scrapy stosowane są w środowiskach produkcyjnych; a narzędzie takie jak "scrapyd" pokazuje, że istnieją pewne sposoby, aby poradzić sobie z tymi wymaganiami (nie wyobrażam sobie, że złomowanie jaj scrapaży dotyczy ręcznego!)
Bardzo dziękuję za pomoc.
Scrapy są tworzone z poleceniem 'deploy'; może możesz sprawdzić [Django Dynamic Scraper] (https://github.com/holgerd77/django-dynamic-scraper), aby uzyskać wskazówki, jak zintegrować kontrolę pająków Scrapy w Django. –
Czy obejrzałeś [narzędzie do scrapy] (http://doc.scrapy.org/en/latest/topics/commands.html) lub [projekt slybot] (https://github.com/scrapy/slybot) dla Inspiracja? – jah
Moja odpowiedź http://stackoverflow.com/questions/9814827/creating-a-generic-scrapy-spider/13054768#13054768 może pomóc – djinn