2017-02-12 2 views
0

Я очень новичок в Python и Scrapy, и я написал искателя в PyCharm следующим образом:Runing в Scrapy Crawler

import scrapy 
from scrapy.spiders import Spider 
from scrapy.http import Request 
import re 

class TutsplusItem(scrapy.Item): 
    title = scrapy.Field() 



class MySpider(Spider): 
    name = "tutsplus" 
    allowed_domains = ["bbc.com"] 
    start_urls = ["http://www.bbc.com/"] 

    def parse(self, response): 
    links = response.xpath('//a/@href').extract() 

# We stored already crawled links in this list 
crawledLinks = [] 

for link in links: 
    # If it is a proper link and is not checked yet, yield it to the Spider 
    #if linkPattern.match(link) and not link in crawledLinks: 
    if not link in crawledLinks: 
    link = "http://www.bbc.com" + link 
    crawledLinks.append(link) 
    yield Request(link, self.parse) 

titles = response.xpath('//a[contains(@class, "media__link")]/text()').extract() 
for title in titles: 
    item = TutsplusItem() 
    item["title"] = title 
    print("Title is : %s" %title) 
    yield item 

Однако, когда я запускаю выше кодов, ничего не печатает на экране! Что не так в моем коде?

ответ

0

Как правило, вы начинаете лечение с помощью scrapy crawl, что позволит вам подключить все и начать сканирование.

Он также выглядит так, что ваш код не имеет должным образом отступ (только одна строка внутри parse, когда все они должны быть).

0

Поместите код в текстовый файл, назовите его на что-то вроде your_spider.py и запустить паука, используя runspider команду:

scrapy runspider your_spider.py 
0

Для запуска паука изнутри PyCharm вам нужно настроить «Конфигурация Run/Debug " должным образом. Запуск your_spider.py в качестве автономного скрипта не приведет ни к чему.

Как упоминалось @stranac scrapy crawl - это путь. С scrapy является двоичным и crawl аргументом вашего двоичного кода.

Настройка Run/Debug

В главном меню выберите: Run> Run Configurations ...

  • найти подходящий Scrapy двоичный в вашем virtualenv и установить его абсолютный путь как Сценарий. Это должно выглядеть как-то вроде этого: /home/username/.virtualenvs/your_virtualenv_name/bin/scrapy
  • В параметры Scrapy настроить параметры бинарного scrapy будут выполняться. В вашем случае вы хотите начать свой паук. как это должно выглядеть:

crawl your_spider_name, например. crawl tutsplus

  • Убедитесь, что Python intrepreter является то, где вы установили Scrapy и другие пакеты, необходимые для вашего проекта.

  • Убедитесь, что рабочий каталог это каталог, содержащий settings.py, который также генерируемый Scrapy.

С этого момента вы должны иметь возможность запускать и отлаживать своих пауков изнутри Пырчарма.

Смежные вопросы