Size: a a a

2020 July 04

i

ildar in Scrapy
а вообще ты эту штуку можешь уместить в 2 строчки если у тебя новый скрапи:
def parse_months(self, response):
   yield from response.follow_all(urls:=response.xpath("//div[@class='j-calendar-month']/a/@href"), callback=self.parse_dates)

- тут тебе кстати и get() вроде даже  не нужен и даже брать a/@href, т.к. follow и так автоматом по-умолчанию это делает. ну и собсна поэтому он наверное и работает, но при этом не хочет тебе делать print
(хз правда можно ли сюда еще print как-то красиво упихать)
источник

i

ildar in Scrapy
Andrii
urls = response.xpath("//div[@class='j-calendar-month']/a/@href").get()
нет, там наверное .get_all() надо уже
источник

A

Andrii in Scrapy
ildar
нет, там наверное .get_all() надо уже
ну да, потом же итерация.
источник

🇺L

🇺🇦 Ad Libitum in Scrapy
Мужики вы крутые, вы в курсе7
источник

🇺L

🇺🇦 Ad Libitum in Scrapy
Python 3.7
источник

🇺L

🇺🇦 Ad Libitum in Scrapy
говорит, не поддерживает
источник

🇺L

🇺🇦 Ad Libitum in Scrapy
yield from response.follow_all(urls := response.xpath("//div[@class='j-calendar-month']/a/@href"),
источник

🇺L

🇺🇦 Ad Libitum in Scrapy
invalid syntax
источник

К

Кирилл in Scrapy
urls = response
источник

К

Кирилл in Scrapy
там не нужен walrus оператор
источник

К

Кирилл in Scrapy
и да, он с 3.8
источник

🇺L

🇺🇦 Ad Libitum in Scrapy
Скажите, а если я хочу формировать XML-структуру из получившегося, для последующего импорта, и вообще отлаживать где у меня что ломается, то как я могу писать в XML промежуточные результаты? Потому что сейчас например -o test.xml нулевой.
def parse(self, response):
   urls = response.xpath("//ul[@class='j-years-nav']/li/a/@href")
   for url in urls:
       yield response.follow(url, callback=self.parse_months)

def parse_months(self, response):
   urls = response.xpath("//div[@class='j-calendar-month']/a/@href")
   for url in urls:
       yield response.follow(url, callback=self.parse_dates)
def parse_dates(self, response):
   pass
источник

🇺L

🇺🇦 Ad Libitum in Scrapy
А я хочу увидеть что на этом шаге оно соскребло себе в копилку, чтобы понимать,где я не то собираю )
источник

AR

Andrey Rahmatullin in Scrapy
Ничего не соскребло, это я так скажу
источник

К

Кирилл in Scrapy
пользуйся дэбагером
источник

AR

Andrey Rahmatullin in Scrapy
Ты ничего не yield'ишь
источник

AR

Andrey Rahmatullin in Scrapy
Непонятно конечно, что потом с этим хмл делать, не глазами же смотреть
источник

🇺L

🇺🇦 Ad Libitum in Scrapy
Да я вообще пытаюсь упростить задачу до максимума, чтобы разобраться.
источник

🇺L

🇺🇦 Ad Libitum in Scrapy
def parse(self, response):
   urls = response.xpath("//ul[@class='j-years-nav']/li/a/@href")
   for url in urls:
       yield response.follow(url, callback=self.parse_months)

def parse_months(self, response):
   pass
источник

🇺L

🇺🇦 Ad Libitum in Scrapy
crawled, finished.
источник