scrapy_python | Unsorted

Telegram-канал scrapy_python - Scrapy

1045

Чат создан чтобы делиться опытом о Scrapy/Python и другими парсинг технологиями. Вежливость и уважение к другим участникам группы. Троллинг не приветствуется. FAQ: https://github.com/bulatbulat48/ru-scrapy-python Работа: t.me/scrapy_jobs

Subscribe to a channel

Scrapy

Кто-нибудь продает аккаунты cookie?

Читать полностью…

Scrapy

так-то это скорее всего iterate_spider_output() + дефереды, имеющийся сейчас там код мне не нравится
но это опять же последствия того что дефереды из колбэков нельзя было возвращать ни до ни после 2.0

Читать полностью…

Scrapy

я за полчаса не нашёл, а я этот код рефакторил в этом году

Читать полностью…

Scrapy

@wrar42, дополняю: почти работает inlineCallbacks на скрапи 2.13

from scrapy import Spider
from twisted.internet.defer import inlineCallbacks
from twisted.internet.threads import deferToThread


class TestSpider(Spider):
name = "test"
start_urls = ["data:,"]

custom_settings = {
"TWISTED_REACTOR": "twisted.internet.asyncioreactor.AsyncioSelectorReactor"
}

@inlineCallbacks
def parse(self, response):
def in_thread():
self.logger.info("!!in_thread")
return "ok"

self.logger.info("!!begin")
result = yield deferToThread(in_thread)
self.logger.info("!!result: %s", result)
self.logger.info("!!end")
# return ()


Паук выше работает на скрапи 2.12 без ошибок. На скрапи 2.13 дает ошибку:

Traceback (most recent call last):
File "[redacted]\site-packages\scrapy\utils\defer.py", line 343, in iter_errback
yield next(it)
~~~~^^^^
File "[redacted]\site-packages\scrapy\utils\python.py", line 369, in __next__
return next(self.data)
File "[redacted]\site-packages\scrapy\utils\python.py", line 369, in __next__
return next(self.data)
File "[redacted]\site-packages\scrapy\core\spidermw.py", line 167, in process_sync
yield from iterable
File "[redacted]\site-packages\scrapy\spidermiddlewares\base.py", line 58, in process_spider_output
for o in result:
^^^^^^
File "[redacted]\site-packages\scrapy\core\spidermw.py", line 167, in process_sync
yield from iterable
File "[redacted]\site-packages\scrapy\spidermiddlewares\base.py", line 58, in process_spider_output
for o in result:
^^^^^^
File "[redacted]\site-packages\scrapy\core\spidermw.py", line 167, in process_sync
yield from iterable
File "[redacted]\site-packages\scrapy\spidermiddlewares\base.py", line 58, in process_spider_output
for o in result:
^^^^^^
File "[redacted]\site-packages\scrapy\core\spidermw.py", line 167, in process_sync
yield from iterable
File "[redacted]\site-packages\scrapy\spidermiddlewares\depth.py", line 59, in process_spider_output
yield from super().process_spider_output(response, result, spider)
File "[redacted]\site-packages\scrapy\spidermiddlewares\base.py", line 58, in process_spider_output
for o in result:
^^^^^^
File "[redacted]\site-packages\scrapy\core\spidermw.py", line 167, in process_sync
yield from iterable
TypeError: 'NoneType' object is not iterable


Если вернуть iterable, ошибок нет. Будет здорово, если почините.

Читать полностью…

Scrapy

Вот сейчас и пытаюсь на асинкио перейти

Читать полностью…

Scrapy

Ну, батенька, лень она такая...

Читать полностью…

Scrapy

Обновил скрапи до последней - сломалось. На 2.9 раблтало

Читать полностью…

Scrapy

Раньше можно было, есть реализации. Деферед и сейчас можно

Читать полностью…

Scrapy

если б мы когда-то разрешали возвращать из колбэков дефереды, мир бы выглядел совсем иначе

Читать полностью…

Scrapy

@wrar42 я правильно понимаю, что на последнем scrapy больше нельзя использовать inlineCallbacks для реквест-колбэков паука?

Читать полностью…

Scrapy

LinkedIn cookie account provider, please contact me

Читать полностью…

Scrapy

scrapyd какой-то внешний чувак майнтейнит, и на днях что-то коммитил

Читать полностью…

Scrapy

I need LinkedIn cookie accounts. I need a lot of it every day. If you can provide it, please contact me. Scammers please stay away. Using cookies to log in does not require email access. The format is as follows.

email+linkedin pass+cookie+connects
or no pass

Читать полностью…

Scrapy

Всем Привет !
Пытаюсь запустить свой скрипт на scrapy по графику…
Я вижу логи о запуске но самого процесса сбора нету.

'scrapy.downloadermiddlewares.retry.RetryMiddleware',
'scrapy.downloadermiddlewares.redirect.MetaRefreshMiddleware',
'scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware',
'scrapy.downloadermiddlewares.redirect.RedirectMiddleware',
'scrapy.downloadermiddlewares.cookies.CookiesMiddleware',
'scrapy.downloadermiddlewares.stats.DownloaderStats']
2025-07-21 21:23:00.058 | INFO | scrapy.middleware:_from_settings:101 - Enabled spider middlewares:
['scrapy.spidermiddlewares.start.StartSpiderMiddleware',
'scrapy.spidermiddlewares.httperror.HttpErrorMiddleware',
'scrapy.spidermiddlewares.referer.RefererMiddleware',
'scrapy.spidermiddlewares.urllength.UrlLengthMiddleware',
'scrapy.spidermiddlewares.depth.DepthMiddleware']
2025-07-21 21:23:00.058 | INFO | scrapy.middleware:_from_settings:101 - Enabled item pipelines:
['pipelines.items.ItemPipeline']
2025-07-21 21:23:00.058 | INFO | apscheduler.executors.base:run_job:156 - Job "run_spiders (trigger: cron[month='*', day='*', day_of_week='*', hour='*', minute='*'], next run at: 2025-07-21 18:24:00 UTC)" executed successfully

Я испольузeю scrapy 3.13.3
эти логи повторяются но мой crawler не работает. Хотя логи повторяются верно (по интервалу)


from datetime import datetime
from twisted.internet import asyncioreactor
from loguru import logger

asyncioreactor.install()
from apscheduler.schedulers.twisted import TwistedScheduler
from apscheduler.executors.twisted import TwistedExecutor
from apscheduler.triggers.cron import CronTrigger

from twisted.internet import reactor, defer
from scrapy.crawler import CrawlerRunner
from utils.log import setup_logger
from spiders.npauctions import NPAuctionsSpider

setup_logger()


@defer.inlineCallbacks
def run_spiders():
runner = CrawlerRunner()
logger.success("Running spiders sequentially...")
yield runner.crawl(NPAuctionsSpider)
runner.stop()


def main():
logger.info("Starting scheduler...")
# Configure the scheduler
scheduler = TwistedScheduler(
reactor=reactor,
executors={
'default': TwistedExecutor()
}
)
trigger = CronTrigger.from_crontab(
'* * * * *', # Daily at midnight
timezone='UTC'
)
scheduler.add_job(
run_spiders,
trigger=trigger,
max_instances=1,
coalesce=True,
id="npauctions",
next_run_time=datetime.now()
)
try:
# Start the scheduler
scheduler.start()
reactor.run()
except (KeyboardInterrupt, SystemExit):
logger.info("Shutting down scheduler")
scheduler.shutdown()


if __name__ == "__main__":
main()

Читать полностью…

Scrapy

всем привет, кто-нибудь пытался в интеграцию scrapy + langgraph?

Читать полностью…

Scrapy

оставлю, для справки, как (наверное) подобный код переводить на скрапи 2.13+:

    async def parse(self, response):
def in_thread():
self.logger.info("!!in_thread")
return "ok"

self.logger.info("!!begin")
result = await asyncio.to_thread(in_thread)
self.logger.info("!!result: %s", result)
self.logger.info("!!end")

Читать полностью…

Scrapy

ну или воткните return [] в свои но-оп колбэки, то же самое будет

Читать полностью…

Scrapy

не починим
ваш колбэк это по сути функция, возвращающая Deferred[None], и этот None попадает туда, где код скрапи ждёт итерейблы
вам придётся зарыться во внутренности в районе Scraper.call_spider() и iterate_spider_output(), найти что там попадало в 2.12 (обратите внимание что в 2.12 код дебажить практически невозможно, потому что цепочки колбэков), понять как сделать так же в мастере, и доказать нам что это багфикс
успехов!

Читать полностью…

Scrapy

если это работало после 2.0 то сразу надо было на async def писать
до 2.0 это работать не могло кажется

Читать полностью…

Scrapy

ну короче это никогда не декларировалось и не тестировалось

Читать полностью…

Scrapy

на 2.9 следовало использовать async def колбэки и не мучаться

Читать полностью…

Scrapy

С использованием инлайн колбэкс декоратора на коленке паука

Читать полностью…

Scrapy

в scrapy-inline-callbacks внутри целая машинерия с раскруткой генераторов емнип

Читать полностью…

Scrapy

не знаю, никогда нельзя было

Читать полностью…

Scrapy

Ребят, есть ресурс example.com. Нужные мне списки со ссылками внутри грузят жквери. При загрузке, ресурс дёргает какой-то эндпоинт и получает x-knock параметры (я так понимаю, данные сессии).
Дальше хочу ходить по ссылкам с id из списков.(f"url?id={id}"). Без x-knock сыпется 401.
Не пойму, как мне поймать запрос с x-knock куками?
Хотел пройтись напрямую по апишке. Или в таких случаях лучше просто по ui'ю ходить?

scrapy-playwright

Читать полностью…

Scrapy

Нам он не нужен, планов нет

Читать полностью…

Scrapy

всем привет ребята

хочу узнать мнения, пользуетесь ли scrapyd, какой то альтернативой, или написали что то собственное? (не учитывая облачные решения)

просто интересно

заодно было бы интересно услышать мнения разработчиков scrapy насчет scrapyd. планируется ли добавлять какие либо в него фичи или вообще, наоборот, сделать его легаси?

Читать полностью…

Scrapy

предположу что что-то с asyncio евент лупами

Читать полностью…

Scrapy

Hi everyone, can anyone here extract the LinkedIn cookie account from the logs?

Читать полностью…

Scrapy

Всем привет!
Ищу специалистов по парсингу, которые в своей работе регулярно используют прокси-серверы.
Хочу провести короткое интервью (15–20 минут) за вознаграждение 💰
Интересует, как вы используете прокси, с какими задачами сталкиваетесь и что важно при выборе сервиса.

Если интересно - напишите, плиз, в ЛС, расскажу детали.

Читать полностью…
Subscribe to a channel