Size: a a a

2019 December 17

К

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

EB

Elisei Badanin in Scrapy
Elisei Badanin
хотя нет, там все еще проще….
источник

К

Кирилл in Scrapy
Кирилл
Переопредели метод _parse_sitemap, скопируй оттуда всё, потом добавь после после определения it = (на строке 53, если соурс читать), возьми рандомные числа и сделай слайс итератора из itertools.islice
ошибся, нужно после  elif s.type == 'urlset':
источник

EV

Elena V in Scrapy
from scrapy.spiders import SitemapSpider


class PingSitemapSpider(SitemapSpider):
   name = "ping_sitemaps"
   BASE_URL = 'https://some-domain'

   sitemap_urls = [BASE_URL + '/sitemap.xml', ]

   def parse(self, response):

       for _ in response.css('body'):
           item = dict()
           item['link'] = str(response.url)
           item['status_code'] = response.status
           item['download_latency'] = response.request.meta['download_latency']
           yield item
источник

EV

Elena V in Scrapy
вот в такое я тулю. щас там все гениально просто, как видете. с этого нужно сделать сложнее 😊
источник

EB

Elisei Badanin in Scrapy
добавляешь  туда def sitemap_filter(self, entries):, в нем отдаешь рандомное кол-во ссылок, если это urlset
источник

EB

Elisei Badanin in Scrapy
if entries.type == 'urlset’
источник

К

Кирилл in Scrapy
Elisei Badanin
добавляешь  туда def sitemap_filter(self, entries):, в нем отдаешь рандомное кол-во ссылок, если это urlset
согласен
источник

EB

Elisei Badanin in Scrapy
return random.choices(list(entries), k=123)
источник

EV

Elena V in Scrapy
так. стоп. так лучше чисто фильтром? тогда растерялась.
источник

EV

Elena V in Scrapy
Elisei Badanin
добавляешь  туда def sitemap_filter(self, entries):, в нем отдаешь рандомное кол-во ссылок, если это urlset
куда? просто в спайдер. верно?
источник

К

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

EV

Elena V in Scrapy
Elisei Badanin
return random.choices(list(entries), k=123)
и куда это там? а тоя что-то намутила уже
источник

EV

Elena V in Scrapy
Elena V
from scrapy.spiders import SitemapSpider


class PingSitemapSpider(SitemapSpider):
   name = "ping_sitemaps"
   BASE_URL = 'https://some-domain'

   sitemap_urls = [BASE_URL + '/sitemap.xml', ]

   def parse(self, response):

       for _ in response.css('body'):
           item = dict()
           item['link'] = str(response.url)
           item['status_code'] = response.status
           item['download_latency'] = response.request.meta['download_latency']
           yield item
from scrapy.spiders import SitemapSpider


class PingSitemapSpider(SitemapSpider):
   name = "ping_sitemaps"
   BASE_URL = 'https://some-domain'

   sitemap_urls = [BASE_URL + '/sitemap.xml', ]
   
   def sitemap_filter(self, entries):
        # и вот тут что-то происходит, что выплюнет уже ограниченное кол-во ссылок с каждого вложенного сайтмапа

   def parse(self, response):

       for _ in response.css('body'):
           item = dict()
           item['link'] = str(response.url)
           item['status_code'] = response.status
           item['download_latency'] = response.request.meta['download_latency']
           yield item
источник

EB

Elisei Badanin in Scrapy
Elisei Badanin
if entries.type == 'urlset’
1
источник

EB

Elisei Badanin in Scrapy
Elisei Badanin
return random.choices(list(entries), k=123)
2
источник

AB

Alexander B in Scrapy
Боже в скрапи есть re_first метод это пушка🥳🥳
источник

E

Evgen in Scrapy
Добро пожаловать в 2017
источник

AB

Alexander B in Scrapy
Ну ток начал че)
источник

EV

Elena V in Scrapy
@ebadanin единственное, при чем оно хоть что-то выплюнуло:
def sitemap_filter(self, entries):
       for entry in entries:
           return random.choices(list(entries), k=3)

но выплюнуло капельку не то, что ожидала.
в других случаях "кручения" - слало меня нафиг
источник