Django Scrapy TypeError: RepoSpider.start_requests() missing 1 required positional argument: 'url'
Я пытаюсь создать веб-приложение для получения данных из репозитория. Она близка к завершению, но в данный момент я столкнулся с этой ошибкой.
Коды:
Это код паука
import scrapy
from App.models import Repo
class RepoSpider(scrapy.Spider):
name = "RepoSpider"
allowed_domains = ["github.com"]
start_urls = []
def start_requests(self, url):
yield scrapy.Request(url)
def parse(self, response):
url = response.url
url_parts = url.split('/')
username = url_parts[-1]
repo = url_parts[-2]
description = response.css('.f4.my-3::text').get(default='').strip()
language = response.css('.color-fg-default.text-bold.mr-1::text').get(default='')
stars = response.css('a.Link.Link--muted strong::text').get(default='0').strip()
yield {
'username': username,
'repo': repo,
'description': description,
'top_language': language,
'stars': stars
}
scraped_repo = Repo(
url=url,
username=username,
description=description,
top_language=language,
stars=stars
)
scraped_repo.save()
django view
from django.shortcuts import render, redirect
from .models import Repo
from scrapy.crawler import CrawlerProcess
from .tester.tester.spiders.repo import RepoSpider
def index(request):
if request.method =='POST':
url = request.POST.get('url')
process = CrawlerProcess()
process.crawl(RepoSpider, url)
process.start()
return render(request, 'index.html')
Пробовал все, что мог, но сейчас возможности исчерпаны. Это проект, который мне нужно сделать как можно скорее, для меня очень важно, чтобы он работал.
Вы можете обновить start_requests
следующим образом.
def start_requests(self):
yield scrapy.Request(self.url)