Size: a a a

2020 August 14

A

Andrii in Scrapy
щас заюзаю
источник

AR

Andrey Rahmatullin in Scrapy
лол
источник

SS

Stepan Smirnov in Scrapy
https://www.charitynavigator.org/index.cfm?bay=search.summary&orgid=10440

По селектору, работающему в браузере, пытаюсь вытащить значение "Program Expenses"
response.xpath("//div[contains(label/h1/text(), 'Performance')]/div/table/tbody/tr/td[3]/text()").get()

Почему селектор не работает?
источник

AR

Andrey Rahmatullin in Scrapy
ставлю на то что tbody в коде нет
источник

AR

Andrey Rahmatullin in Scrapy
а вообще не надо такие подробные пути писать
источник

ИБ

Иван Батурин... in Scrapy
без tbody работает :)
источник

ИБ

Иван Батурин... in Scrapy
Andrey Rahmatullin
ставлю на то что tbody в коде нет
Интересно этот вывод не глядя в код был сделан? Какое-то тайное знание? в браузере есть tbody, в respone - нет.
источник

AR

Andrey Rahmatullin in Scrapy
да, тайное знание что браузеры всегда генерируют tbody
источник

SS

Stepan Smirnov in Scrapy
а какие браузеры не изменяют html?
источник

AR

Andrey Rahmatullin in Scrapy
никакие браузеры не изменяют хтмл, но все браузеры парсят хтмл и строят DOM-дерево
источник

ИБ

Иван Батурин... in Scrapy
Andrey Rahmatullin
да, тайное знание что браузеры всегда генерируют tbody
🙏🏻
источник

МС

Михаил Синегубов... in Scrapy
хром, вроде, не ставит тбади 🙄
файерфокс, наверное, считает, что таблица без тбади - не правоверная, и пытается обратить ее в свою веру :))
вообще, это обычная ситуация, так что, если не работает селектор, первое что надо  глянуть, после проверки самого селектора - а что к тебе пришло....
источник
2020 August 15

JW

John Wayne in Scrapy
подскажите, как обработать исключение sqlalchemy если бд не существует
sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) FATAL:  database "bd_name" does not exist
в ините паука пробую
try:
           self.db_url = os.environ.get("DATABASE_URI")
           self.Base = automap_base()
           self.engine = create_engine(self.db_url)
           self.Base.prepare(self.engine, reflect=True)
except OperationalError:
           raise NotConfigured('no db')
как можно закрыть паук, прям с инита, чтобы если бд нет, паук закрылся и просто меседж логера?
источник

AS

Alexander Serebrov in Scrapy
Возможно
from sqlachemy.exc import OperationalError
from scrapy.exceptions import CloseSpider

...
try:
   ...
except OperationalError:
   raise CloseSpider(‘Database not exists’)
источник

JW

John Wayne in Scrapy
Alexander Serebrov
Возможно
from sqlachemy.exc import OperationalError
from scrapy.exceptions import CloseSpider

...
try:
   ...
except OperationalError:
   raise CloseSpider(‘Database not exists’)
пробывал такое, пишет
During handling of the above exception, another exception occurred:
и разве CloseSpider может быть из инита?
источник

AR

Andrey Rahmatullin in Scrapy
С этим вроде ничего не сделать
источник

К

Кирилл in Scrapy
Видимо ты его не там вызываешь, CloseSpider можно вызывтаь только или калбэка
источник

AR

Andrey Rahmatullin in Scrapy
Хотя что-то про это чинили, но завершаться не закончив инициализацию это всегда не очень красиво
источник

JW

John Wayne in Scrapy
так как тогда паука остановить если в ините тебе что то не понравилось?
источник

AR

Andrey Rahmatullin in Scrapy
Убрать это из инита, возможно
источник