Size: a a a

2019 August 16

i

ildar in Scrapy
bs для вытягивания html-странички инфы. scrapy для автоматизации ползания по ним, хранения промежуточных результатов, избегания дубликатов, сохранению результатов в несколько форматов и вытягиванию с них инфы
источник

МС

Михаил Синегубов in Scrapy
Cote D'azur
Привет! можете подсказать начинающему в чем кардинальное отличие Scrapy от BS ?
ээээ, я бы сравнил молоток и набор инструменов с шуруповертом в придачу 😂
на самом деле:
bs только парсит
scrapy и качает, и потоки, и парсит, и в файлы  (из коробки) складывает
источник

i

ildar in Scrapy
короче для всего того, для чего тебе вокруг bs придется писать обвязки собственные. а еще bs медленный. уж лучше parsel использовать. который тоже входит в состав скрапи.
источник

МС

Михаил Синегубов in Scrapy
да, скрампи то же может с помощбю BS парсить, в смысле там можно парсить :)
источник

i

ildar in Scrapy
да  я помню такое извращение даже делал, когда css-селекторы плохо знал, а потом нашел html_text либу и стало все вообще хорошо, ну а потом и она уже не так нужна становится)
источник

C

Cote D'azur in Scrapy
спасибо за подробные пояснения!
источник

i

ildar in Scrapy
если тебе одноразово  надо что-то очень быстро спарсить "для дома, для семьи" и при этом не охота читать тутор по скрапи, то можно и bs+requests использовать, надо только учитывать, что чем сложней будет становиться твой парсер, тем кода будет больше по-сравнению с кодом на scrapy. Там где на скрапи ты пишешь 3 строчки, тебе надо 10 обвязки для bs.
источник

i

ildar in Scrapy
как щас помню - надо тебе спарсить сайт, ты пишешь тупой код, который парсит меню, он падает, подкладываешь везде try-catch, потом пишешь логику пагинатора, потом получения страничек (все это падает, когда данных нет или ты чего-то не учел), потом тебя это запарывает, что парсер не хочет двигаться дальше. По-итогу ты начинаешь писать логику сохранения промежуточных результатов, сохраняя, конечно же, в pickle, потом догадываешься применить на нее gzip еще. Еще добавляются проверки "до какого этапа парсер дошел на этот раз?". Чтобы если оно сдохнет на третьем этапе - у тебя уже были данные с меню и с пагинаторов и ссылки на внутренние страницы. Потом еще можно начинать все эти этапы обратно "схлопывать", когда уже все написано,  чтобы парсер быстрей работал.
источник

i

ildar in Scrapy
А потом ты открываешь для себя скрапи, и то шо раньше было расписано на 1-1.5 страницы, теперь зачастую делается в 10 строчек. Правда, там уже другая история начинается, озаглавленная как "javascript и тут подгадил".
источник

ВЛ

Владислав Литвинюк in Scrapy
Привет, скажите, пж, если я хочу продинуться к подключению к api / парсинга мне нужно изучать scrapy, верно?
Мне для аналитики
источник

К

Кирилл in Scrapy
Владислав Литвинюк
Привет, скажите, пж, если я хочу продинуться к подключению к api / парсинга мне нужно изучать scrapy, верно?
Мне для аналитики
ты можешь, но скрапи слишком громоздкий для этого
для API лучше возьми requests , там быстрее сможешь разобраться
источник

ВЛ

Владислав Литвинюк in Scrapy
Кирилл
ты можешь, но скрапи слишком громоздкий для этого
для API лучше возьми requests , там быстрее сможешь разобраться
с requests уже немного знаком (парсил данные с амо срм, например), а на requests можна сложные запросы к API строить, верно?
Думал скрапи простой, сам еще не юзал и не читал о нем
источник

ВЛ

Владислав Литвинюк in Scrapy
У меня большие трудности возникли при распарсинга json
источник

К

Кирилл in Scrapy
Владислав Литвинюк
с requests уже немного знаком (парсил данные с амо срм, например), а на requests можна сложные запросы к API строить, верно?
Думал скрапи простой, сам еще не юзал и не читал о нем
если это не какой-нибудь graphql, то requests более чем достаточно
скрапи относительно прост, у него другие задачи
источник

К

Кирилл in Scrapy
Владислав Литвинюк
У меня большие трудности возникли при распарсинга json
какая ошибка?
источник

К

Кирилл in Scrapy
или какие там трудности могут быть ещё?)
источник

ВЛ

Владислав Литвинюк in Scrapy
Кирилл
какая ошибка?
Вот например такой код
res = requests.get('https://query1.finance.yahoo.com/v7/finance/chart/RADICO.NS?&interval=1m')
data = res.json()
body = data['chart']['result'][0]
dt = pd.Series(map(lambda x: arrow.get(x).to('EST').datetime.replace(tzinfo=None), body['timestamp']), name='dt')
df = pd.DataFrame(body['indicators']['quote'][0], index=dt)
dg = pd.DataFrame(body['timestamp'])
df =  df.loc[:, ('open', 'high', 'low', 'close', 'volume')].reset_index()
источник

ВЛ

Владислав Литвинюк in Scrapy
Повезло что нашёл ответ в интернете
источник

К

Кирилл in Scrapy
а в чём проблема?
источник

ВЛ

Владислав Литвинюк in Scrapy
Кирилл
а в чём проблема?
А в амо срм, есть, например 10 строк, а в одном из столбцов в одной ячейке может быть значений 3 штуки, например
Покупатель   Доход             ID
а                            100           [{'id': 1},
                                                 {'id': 2}]

б                            200           [{'id': 2},
                                                 {'id': 3}]

в                            500           [{'id': 2}]
источник