Я хочу сканировать сайт, который каждый раздел ответа будет анализировать в отдельном классе.например, заголовок в классе HeadLineParser и комментарий в CommentParser и т. д.
, поэтому в соответствии с этим подходом у меня есть основной класс для сканирования следующим образом:
class SiteSpider(scrapy.Spider):
def __init__(self):
self.parser = Parser()
name = "somesite"
start_urls = ['https://www.somesite.com']
def start_requests(self):
urls = ['https://www.somesite.com']
for url in urls:
yield scrapy.Request(url=url, callback=self.parser.parse)
, что self.parser.parse похожеэто:
class Parser():
def parse(self, response):
print ("from Parser class => ", response.url)
headLinExt = HeadLine()
headLinExt.parse(response)
comment_parser = CommentParser()
comment_parser.scrap(response)
, а CommentParser выглядит следующим образом:
import scrapy
class CommentParser:
def scrap(self, response):
print("from CommentParser.scrap =>", response.url)
for i in range(5):
yield scrapy.Request(url="https://www.somesite.com/comments/", callback=self.parse_comment)
def parse_comment(self,response):
print("from CommentParser.parse => ", response.url)
yield dict(response_url = response.url)
моя проблема в CommentParser. Я хочу отправить запрос и проанализировать его ответ, но в CommentParser скрасс-доза не отправляет запрос иparse_comment никогда не вызывайте.
на самом деле я хочу разобрать страницу ответа в каком-то классе.возможно, каждый из этих классов хочет отправить новый запрос, используя scrapy, и проанализировать их ответ в своем классе.Пожалуйста, помогите мне коснуться этой функциональности.заранее спасибо.