Size: a a a

2020 May 27

i

ildar in Scrapy
Ты можешь сделать
import parsel
источник

i

ildar in Scrapy
Создать селектор и передавать страницу в него, у тебя будет и .css и .xpath
источник

i

ildar in Scrapy
И быстрее работать кстати будет. И меньше писать надо
источник

AV

Andrei Volkau in Scrapy
Спасибо за идею! А то походу у связки bs4 и xpath беда из того что пока вижу
источник

i

ildar in Scrapy
from parsel import Selector
sess = requests.Session()
r = sess.get(url, headers=headers, cookies=cookies)
sel = Selector(r.text)
sel.css('#firstname::text').get()
download_file_link = sel.css('a[download="insales_all.csv"]::attr(href)').get()
источник

i

ildar in Scrapy
вот те код, для примера, также ты можешь писать sel.xpath(бла-бла
источник

AV

Andrei Volkau in Scrapy
ildar
from parsel import Selector
sess = requests.Session()
r = sess.get(url, headers=headers, cookies=cookies)
sel = Selector(r.text)
sel.css('#firstname::text').get()
download_file_link = sel.css('a[download="insales_all.csv"]::attr(href)').get()
Спаибо большое, сейчас попробую
источник

i

ildar in Scrapy
и еще сразу либу html_text рекомендую, в ней можно будет обойтись без ::text, ей просто передаешь результат .get(), и она обычно довольно хорошо вытаскивает любой текст из какой-то области, а если плохо- ну там уже можно с frozendict повозиться, чтоб определить, что является переводом строки и прочее, в доках все описано, работает как-то так (здесь response это можно считать тоже шо и sel в предыдущем примере)
breadcrumbs = html_text.extract_text(response.css('.cpt_product_category_info').get())
источник

AV

Andrei Volkau in Scrapy
Достал что хотел через parsel и css selector подсказанный selector гаджетом. Сейчас вот тооько думаю, а не плохой ли у меня код получится раз я в нем часть полей через parsel буду извлеать и часть через bs4. Возможно тогда лучше будет все через что-то одно
источник

AR

Andrey Rahmatullin in Scrapy
конечно через что-то одно
источник

AV

Andrei Volkau in Scrapy
Жадь конечено что у bs4 проблемы с xpath (пока не знаю как подружить) и кроме того bs4 не способен потреблять сss селекторы типа 'h2+ .col-xs-12 span'. А так библитоке очень хоршая для сначинающих.
Если не найду способа все таки подружиьт bs4 с xpath как нибудь быстро, то видимо parsel самый лучший вараинт. Всем большое спасибо!
источник

i

ildar in Scrapy
Andrei Volkau
Достал что хотел через parsel и css selector подсказанный selector гаджетом. Сейчас вот тооько думаю, а не плохой ли у меня код получится раз я в нем часть полей через parsel буду извлеать и часть через bs4. Возможно тогда лучше будет все через что-то одно
вот эта html_text либа в свое время мне очень помогла через некоторое время после перехода на скрапи, ну, когда я ее нашел, т.к. иногда текст извлечь не так просто, там всякие span когда внутри и переносы строк. А она работает примерно как bs'ный get_text(), даже лучше подключив ее я в итоге про bs забыл вообще
источник

s

smeshny 🏍🏂🥽🏋️‍♂️... in Scrapy
Andrei Volkau
Жадь конечено что у bs4 проблемы с xpath (пока не знаю как подружить) и кроме того bs4 не способен потреблять сss селекторы типа 'h2+ .col-xs-12 span'. А так библитоке очень хоршая для сначинающих.
Если не найду способа все таки подружиьт bs4 с xpath как нибудь быстро, то видимо parsel самый лучший вараинт. Всем большое спасибо!
причисляю себя к начинающим
тратил до этого время на bs4 пока не начал разобраться как работает scrapy.

жалею время потраченное на бс4)
источник

x\

xal.py \-_-/ in Scrapy
работаю с бс4 даже при использовании скрепи
источник

i

ildar in Scrapy
да, ты думаешь типа уууу скрапи - это сцук сложно. А в итоге когда у тебя парсер из 30 строк превращается в 10 - это очень круто
источник

x\

xal.py \-_-/ in Scrapy
это у вас проблемы если с бсом не смогли совладать
источник

x\

xal.py \-_-/ in Scrapy
ildar
да, ты думаешь типа уууу скрапи - это сцук сложно. А в итоге когда у тебя парсер из 30 строк превращается в 10 - это очень круто
у меня ваш код из 10 строк помещается в 3
источник

i

ildar in Scrapy
не верю (с)
источник

i

ildar in Scrapy
я кстати как-то писал, что вот, с yield from и  follow_all теперь лишнюю строчку приходится писать для объявы переменной, чтобы сразу понимать по чему итерируется. В итоге с питоном 3.8 нашел такой выход, правда pycharm жалуется что она нигде не используется, но зато теперь все понятно:
https://i.imgur.com/mQruphW.png
источник

x\

xal.py \-_-/ in Scrapy
ildar
не верю (с)
Твоё дело
источник