Я написал очень простой паук в скрапе, чтобы вычеркнуть заголовок вопросов с целевой страницы stackoverflow. Я пытался заставить его работать последние несколько часов, но я получаю одну и ту же ошибку каждый раз, когда выполняю свой сценарий. Полный возврат приведен ниже.
items.py
включает в себя:
import scrapy
class StackoverflowspiderItem(scrapy.Item):
name = scrapy.Field()
infograbber.py
aka spider содержит:
import scrapy
from scrapy import Selector
from scrapy.crawler import CrawlerProcess
from stackoverflowspider.items import StackoverflowspiderItem
class InfograbberSpider(scrapy.Spider):
name = 'infograbber'
allowed_domains = ['stackoverflow.com']
start_urls = ['https://stackoverflow.com/questions/']
def parse(self, response):
sel = Selector(response)
items = []
for question in sel.css(".question-hyperlink"):
title = StackoverflowspiderItem()
title['name'] = question.css("::text").extract_first()
items.append(title)
return items
c = CrawlerProcess({
'USER_AGENT': 'Mozilla/5.0',
})
c.crawl(InfograbberSpider)
c.start()
Это Project Hierarchy
:

У меня ошибка:
Traceback (most recent call last):
File "C:\Users\WCS\Desktop\stackoverflowspider\stackoverflowspider\spiders\infograbber.py", line 4, in <module>
from stackoverflowspider.items import StackoverflowspiderItem
ModuleNotFoundError: No module named 'stackoverflowspider'
К вашему сведению: когда я пытаюсь, как показано ниже, это работает, но я не хочу идти так.
import scrapy
from scrapy.crawler import CrawlerProcess
class InfograbberSpider(scrapy.Spider):
name = 'infograbber'
allowed_domains = ['stackoverflow.com']
start_urls = ['https://stackoverflow.com/questions/']
def parse(self, response):
for question in response.css(".question-hyperlink"):
print(question.css("::text").extract_first())
c = CrawlerProcess({
'USER_AGENT': 'Mozilla/5.0',
})
c.crawl(InfograbberSpider)
c.start()
Куда я иду не так? Заранее спасибо за любое решение. Кстати, я использую python 3.6
и scrapy 1.5.0
. Я пытался с помощью cmd
и sublime text editor
выполнить файл, но в обоих случаях я получаю ту же ошибку.