Импортировать файл элементов в другой скрипт на python
Я пытаюсь сделать следующее:
Паук скребет ссылки, присутствующие на веб-странице сайта.Сохраняет ссылки в текстовом файле.Другой паук теперь открывает текстовый файл и читает ссылки, очищает отдельные веб-страницы и сохраняет данные.Я пытаюсь вызвать этих пауков из другого скрипта Pythonwhich resides in a different directory
, Теперь первый паук вызывается правильно, без проблем. Проблема со вторым пауком.
Исходный код второго паука выглядит следующим образом:
import scrapy
from dateutil.parser import parse
import requests
from scrapy.http import Request
from project-name.items import Project-nameItem
url_list = []
with open("file.txt", "r") as f:
for line in f:
url_list.append(line)
for i in range(0, len(url_list)):
url_list[i] = url_list[i].replace('\n','')
indexList = []
URL = "http://www.exaple.com/id=%s"
number = 0
class AnotherSpider(scrapy.Spider):
name = "another"
allowed_domains = ['example.com']
start_urls = [URL % number]
def start_requests(self):
for i in url_list:
yield Request(url = URL % i, callback = self.parse)
def parse(self, response):
#scrape the page for the required information
Когда я вызываю второго паука, я получаю следующую ошибку:
runspider: error: Unable to load '/home/project-name/project-name/spiders/anotherspider.py': No module named project-name.items
РЕДАКТИРОВАТЬ
Поскольку скрипт python находится в другом каталоге, я используюrunspider
Команда для выполнения пауков. Проблема этой команды в том, что это команда глобального уровня, что означает, что настройки проекта не учитываются. Скорее всего, это приводит к тому, что скрипт python не может определитьitems.py
файл
Команда, используемая для выполнения пауков, выглядит следующим образом:
scrapy runspider spider1.py
scrapy runspider spider2.py
Есть ли работа вокруг?