Запуск Python Scrapy Spider по расписанию - PullRequest
0 голосов
/ 29 мая 2019

Я новичок в Python и в Интернете.Прошу прощения за мое невежество.В этой программе я хочу запустить Scrapy Spider по расписанию.Я уже пробовал с пакетом "график".Но это не удалось, так как метод do () нуждается в вызове метода в качестве аргумента.Я попытался передать имя класса «MySpider», но он не дал желаемого результата.Я также пробовал работу cron.Но не мог понять, как запустить Spider как работу cron.Пожалуйста, помогите мне понять, как запустить это по расписанию.Любая помощь будет оценена.Я использую Python 3.7 в Mac OS

import csv
import os
import random
from time import sleep
import scrapy
import schedule
import time

class Myspider(scrapy.Spider):
    name = "spider1"

    with open("data.csv", "a") as filee:

        if os.stat("data.csv").st_size != 0:
            filee.truncate(0)
        filee.close()

    def start_requests(self):
        list = ["https://www.example.com/item1",
                "https://www.example.com/item2",
                "https://www.example.com/item3",
                "https://www.example.com/item4",
                "https://www.example.com/item5"
                ]

        for i in list:
            yield scrapy.Request(i, callback=self.parse)
            sleep(random.randint(0, 5))

    def parse(self, response):
        product_name = response.css('#pd-h1-cartridge::text')[0].extract()
        product_price = response.css(
            '.product-price .is-current, .product-price_total .is-current, .product-price_total ins, .product-price ins').css(
            '::text')[3].extract()


        with open('data.csv', 'a+') as file:
            itemwriter = csv.writer(file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)
            itemwriter.writerow([str(product_name).strip(), str(product_price).strip()])
            file.close()

 schedule.every(120).seconds.do(Myspider)

        while 1:
            schedule.run_pending()
            time.sleep(10) 
...