2015-01-02 13 views
4

나는 과 같은 많은 수의 Scrapy 튜토리얼을 발견했으며, 아래에 나와있는 단계가 필요합니다. 결과는 많은 파일 (project.cfg + 일부 .py 개의 파일 + 특정 폴더 구조)을 가진 프로젝트입니다.자체 포함 된 python 파일의 웹 크롤러

아래의 단계를 수행하는 방법은python mycrawler.py과 함께 실행될 수있는 독립적 인 파이썬 파일로 작동합니까? 대신 파일을 많이, 일부 .CFG 파일 등, 그리고 방법에 의해 scrapy crawl myproject -o myproject.json ...를 사용하지와 전체 프로젝트의

(,이 사실입니까? scrapy 새로운 쉘 명령 것 같다?)

참고 : here could be an answer to this question 참고 : 불행히도 더 이상 사용되지 않으며 더 이상 작동하지 않습니다. 정의)

from scrapy.item import Item, Field 
    class MyItem(Item): 
     title = Field() 
     link = Field() 
     ... 

3

from scrapy.spider import BaseSpider 
from scrapy.selector import HtmlXPathSelector 

class MySpider(BaseSpider): 
    name = "myproject" 
    allowed_domains = ["example.com"] 
    start_urls = ["http://www.example.com"] 

    def parse(self, response): 
     hxs = HtmlXPathSelector(response) 
     ... 
와 크롤러 :


1) 이런 Item와 데이터 구조 정의) scrapy startproject myproject

2 새로운 scrapy 프로젝트를 작성

4) 실행 프로그램 :

scrapy crawl myproject -o myproject.json 
+0

이것을 실행할 수 있습니까? 이 설명을 간단히 설명 할 수 있습니까? – aibotnet

+0

@vikasdumca 사실이 자습서 (http://amaral-lab.org/blog/quick-introduction-web-crawling-using-scrapy-part-)는 runnable-in-one-script 코드를 만드는 법을 보여줍니다. 하나의 파일'testcrawler.py'에 http://amaral-lab.org/blog/quick-introduction-web-crawling-using-scrapy-part-을 할 수 있고 그것을 실행할 수 있기를 원합니다. 'python testcrawler.py' 대신'scrapy ...'를 실행해야합니다. – Basj

답변

3

이 당신이 원하는 무엇을 당신이 runspider 를 사용하여 프로젝트를 시작하지 않고 하나의 스크립트로 scrapy 거미를 실행할 수 있습니까?

#myscript.py 
from scrapy.item import Item, Field 
from scrapy import Spider 

class MyItem(Item): 
    title = Field() 
    link = Field() 

class MySpider(Spider): 

    start_urls = ['http://www.example.com'] 
    name = 'samplespider' 

    def parse(self, response): 
      item = MyItem() 
      item['title'] = response.xpath('//h1/text()').extract() 
      item['link'] = response.url 
      yield item 

이제 파이썬 mycrawler.py으로 실행할 수있는 독립적 인 파이썬 파일로 (아래) 단계 작업을하는 방법 scrapy runspider myscript.py -o out.json

+0

Thanks @pad. 나는 그것을'python myscript.py'로 실행할 수 있기를 원합니다. 이런 식으로 실행하려면 무엇을 추가해야합니까? – Basj

+1

@Basj는 매우 포괄적 인 대답을보세요 [alecxe] (http://stackoverflow.com/a/27744766/4065855) – pad

1

Scrapy 유닉스되지는 그냥 GCC 등 파이썬, javac의, 같은 실행 명령
당신이 프레임 워크에서 제공 주어진 명령을 사용할 필요가 이것에 대한 유 프레임 워크를 사용하는 BCZ. 당신이 할 수있는 한 가지 일은 bash 스크립트를 생성하고 다른 프로그램 프로그램에서 필요하거나 실행할 때마다 간단히 실행하는 것입니다.

당신이 urllib3 사용 크롤러를 쓸 수 있습니다 간단한