@ru_python

Страница 4380 из 9768
Hot
14.12.2017
08:27:09
Просто мне в задачах на парсинг xml/html важна была скорость разработки.

А на скорость выполнения было накласть.

Robot
14.12.2017
08:27:30
Ага но иногда и скорость нужна

Jentry
14.12.2017
08:27:32
BeautifulSoup устарел эдак в 2012, не рекомендуется, так как в нем утечки памяти

Google
Robot
14.12.2017
08:28:35
Я как-то делал десктопное gui к одному форуму, и парсил его BeautifulSoup изначально. Это ощутимо тормозило. Именно парсер просто. Пришлось переделать.

Alexander
14.12.2017
08:29:04
приемущества в том, что она написана на cython и работает быстрее, это, пожалуй, все
А входящая в состав стандартной библиотеки не на нем же?

Robot
14.12.2017
08:29:07
Ну и просто если надо много данных парсить, то скорость начинает ощущаться.

Alexander
14.12.2017
08:30:23
Угу... У меня не такие большие XML'ки - 100, 200 Кб. Я провел немного замеров - результаты идентичны. Но я может быть не использую каких-то фишек lxml для ускорения обработки...

Robot
14.12.2017
08:32:55
А есть альтернативы получше? Приоритет на скорость и удобство разработки.
По удобству - вряд ли. Я в основном bs использую, скорость, обычно, не критична. Если была бы критична, даже не знаю что взял бы.

Jentry
14.12.2017
08:41:33
А входящая в состав стандартной библиотеки не на нем же?
как ты можешь видеть - нет, чистый python https://github.com/python/cpython/tree/master/Lib/xml

Robot
14.12.2017
08:45:32
у elementtree вроде была версия на си, но что-то её убрали

Alexander
14.12.2017
08:45:46
как ты можешь видеть - нет, чистый python https://github.com/python/cpython/tree/master/Lib/xml
=) Да, точно... Я, собственно, чего спрашиваю. Меня беспокоит вопрос производительности, т.к. очень важно получать ответ максимально быстро. Скрипт пишется для Zabbix, где дефолтное время ожидания выполнения равно трем секундам. Я укладываюсь как использованием xml, так и с lxml, но хочется попробовать выжать максимум.

Robot
14.12.2017
08:46:23
3 секунды это довольно много

Alexander
14.12.2017
08:46:23
у elementtree вроде была версия на си, но что-то её убрали
Ну да, cElementTree. С какой-то версии deprecated.

Jentry
14.12.2017
08:46:43
попробуй запрофайлить, я не думаю, что ты упрешься в парсинг, если конечно не парсишь мегабайты данных за раз имхо zabbix это не столь критично по времени выполнения

Google
Jentry
14.12.2017
08:46:49
всяко не хайлоад

Alexander
14.12.2017
08:47:57
Среднее время выполнения - 700 мс.

Jentry
14.12.2017
08:49:14
возьми cProfile и посмотри стату по выполнению

Izy
14.12.2017
08:49:29
ребят есть вопро: есть такой код filePath = '/mnt/Images/test.png' searchUrl = 'http://www.google.hr/searchbyimage/upload' multipart = {'encoded_image': (filePath, open(filePath, 'rb')), 'image_content': ''} response = requests.post(searchUrl, files=multipart, allow_redirects=False) fetchUrl = response.headers['Location'] почему я не могу сделать запрос такого типа requests.get(fetchUrl) почему он потом перекидывает на стандартную страницу поиска а не на результат поиска по картинке

Alexander
14.12.2017
08:50:46
возьми cProfile и посмотри стату по выполнению
Окей, спасибо. Не пользовался еще им, погляжу.

Izy
14.12.2017
08:52:27
я тут пытаюсь поиск по картинке в гугл запилить)) и что то не догоняю) )

Jentry
14.12.2017
08:52:45
Окей, спасибо. Не пользовался еще им, погляжу.
https://ymichael.com/2014/03/08/profiling-python-with-cprofile.html

Nikolay
14.12.2017
08:54:10
Ты шлёшь запрос, но ты это делаешь без должного уважения

Robot
14.12.2017
08:54:23
посоветуйте библиотеку для soap

Nikolay
14.12.2017
08:54:45
посоветуйте библиотеку для soap
Зачем тебе это говно?

Maxim robox
14.12.2017
08:55:09
посоветуйте библиотеку для soap
TLDR: в питоне с SOAP всё очень плохо.

Robot
14.12.2017
08:55:14
Зачем тебе это говно?
Да блин с середины нулевых не юзал, но тут сторонний сервис хочет soap

Bohdan
14.12.2017
08:55:40
TLDR: в питоне с SOAP всё очень плохо.
с soap вообще все очень плохо

Robot
14.12.2017
08:56:04
Он умеет возвращать данные в json хотя бы. Но сам запрос надо слать в xml

Maxim robox
14.12.2017
08:56:15
Izy
14.12.2017
08:56:24
не ну я же типо сначала сначала сделал пост запрос он мне типо ответил и отдал url с запросом а я поэтому потом делаю get запрос)) надо было post запрос делать да?

Google
Robot
14.12.2017
08:56:34
Bohdan
14.12.2017
08:56:48
zeep юзал, терпимо по крайней мере лучше, чем besimple клиент для php

Maxim robox
14.12.2017
08:58:06
Тогда не знаю. Советую отдебажить в postman, а потом переносить в питон.

И в .net XDD
Ну ещё suds можешь попробовать. Но она мёртвая. Можно поискать форк поживее.

Jentry
14.12.2017
08:59:25
Да блин с середины нулевых не юзал, но тут сторонний сервис хочет soap
я в этом случае беру шаблоны на строках и просто параметры подставляю, выходит отлично по производительности

Izy
14.12.2017
08:59:35
А, там нет. Там GET.
просто соль в том что через селиниум результат открывается а через requests неоткрывается) вот я и думаю )) где я опять туплю)

Maxim robox
14.12.2017
08:59:55
Maxim robox
14.12.2017
09:00:23
Хотя нет. В порнорежиме та же ссылка тоже открывается.

Maxim robox
14.12.2017
09:00:27
Тогда не знаю.

Но идея интересная. Может так и сделаю.
В одном проекте плюнули на еблю с библиотеками, отправляли запросы через jinja, а принимали через что-то типа xml2dict

А по получившемуся дикту бегали другой библиотекой. dPath (типа аналог xPath в XML).

Izy
14.12.2017
09:04:32
Ну там, возможно, какой-нибудь идентификатор сессии в куках ещё.
я тоже думал про это , но я запрос делаю реквестом а открываю селениумом ну как то так: import requests filePath = '/mnt/Images/test.png' searchUrl = 'http://www.google.hr/searchbyimage/upload' multipart = {'encoded_image': (filePath, open(filePath, 'rb')), 'image_content': ''} response = requests.post(searchUrl, files=multipart, allow_redirects=False) fetchUrl = response.headers['Location'] browser = Browser() browser = browser.start() browser.get(fetchUrl) я просто хотел сделать только на requests но он почему то не работает как я хочу

Google
Izy
14.12.2017
09:06:41
А оно должно работать так как ты хочешь?
ну да там запрос то отправить картинку в гугл посмотреть результат поиска по тегам и закрыть

Maxim robox
14.12.2017
09:06:47
я тоже думал про это , но я запрос делаю реквестом а открываю селениумом ну как то так: import requests filePath = '/mnt/Images/test.png' searchUrl = 'http://www.google.hr/searchbyimage/upload' multipart = {'encoded_image': (filePath, open(filePath, 'rb')), 'image_content': ''} response = requests.post(searchUrl, files=multipart, allow_redirects=False) fetchUrl = response.headers['Location'] browser = Browser() browser = browser.start() browser.get(fetchUrl) я просто хотел сделать только на requests но он почему то не работает как я хочу
Я в таких случаях делаю так: Открываю страницу в браузере. Ищу нужный запрос во вкладке Network. Экспортирую как Curl. Импортирую это в Postman. В постмане играюсь с заголовками и прочим, чтобы запрос работал с минимальными входными данными. После этого экспортирую в python.requests или куда мне это дальше там надо.

Maxim robox
14.12.2017
09:07:46
Экспорт запросов из браузера в postman это вообще космос фича.

Admin
ERROR: S client not available

Izy
14.12.2017
09:08:13
Экспорт запросов из браузера в postman это вообще космос фича.
так уже заинтриговал )) бегом качаю тулзу

Jentry
14.12.2017
09:09:02
Экспорт запросов из браузера в postman это вообще космос фича.
так зачем экспорт, постман и есть браузер, он может даже просто записывать и отображать все, что происходит в соседней вкладке хрома

Jentry
14.12.2017
09:09:48
А ну все равно в хроме есть кнопочка перехвата в этом случае

хотя хз как ты ставил

Maxim robox
14.12.2017
09:10:12
А ну все равно в хроме есть кнопочка перехвата в этом случае
Ну мне с экспортом достаточно удобно. Хотя покажи свой вариант, может ещё круче.

Jentry
14.12.2017
09:10:36
https://chrome.google.com/webstore/detail/postman-interceptor/aicmkgpgakddgnaphhhpliifpcfhicfo?hl=en

Robot
14.12.2017
09:10:50
хм какая-то монстроидальная тулза. но спасибо за наводку, может пригодиться

Maxim robox
14.12.2017
09:11:11
https://chrome.google.com/webstore/detail/postman-interceptor/aicmkgpgakddgnaphhhpliifpcfhicfo?hl=en
А, видел вроде. Не уверен, что она работает со standalone app. Да и выглядит менее удобной.

Robot
14.12.2017
09:11:55
Оно не особо standalone там тоже браузер и нода какая-то

Maxim robox
14.12.2017
09:12:14
Оно не особо standalone там тоже браузер и нода какая-то
standalone. Просто на электроне. Но это не важно.

В любом случае, не экстеншн к браузеру.

Jentry
14.12.2017
09:14:38
хз перехват крутая штука, просто нажал кнопку и ловишь все в постмане, что тычешь в браузере

Robot
14.12.2017
09:19:15
Мне как-то хватало вкладки network в devtools

Kirill
14.12.2017
09:19:44
Друзья, посоветуйте библиотеку для манипуляций с pdf: кропить, мерджить, сплитить, вращать страницы.

Google
Maxim robox
14.12.2017
09:21:00
Евгений
14.12.2017
09:53:20
Привет всем. SQLAlchemy умеет во временные таблицы без их предварительного описания? Типа так: SELECT * INTO #tmptbl FROM tbl ?

Жесть. Уже хз какой вопрос по алхимии задаю, и практически никогда не отвечают. Скалдывается такое впечатление, что алхимию никто не использует вообще.

Maxim robox
14.12.2017
09:56:48
Жесть. Уже хз какой вопрос по алхимии задаю, и практически никогда не отвечают. Скалдывается такое впечатление, что алхимию никто не использует вообще.
Ну алхимия это либо крошечный проект, либо embedded db. Тебе можно попробовать задать вопрос в чате по андроиду.

Sergey
14.12.2017
09:57:33
:)

Евгений
14.12.2017
09:57:33
о_О а причём тут андроид?

Maxim robox
14.12.2017
09:57:56
о_О а причём тут андроид?
Embedded бд для мобильных приложений.

Евгений
14.12.2017
09:58:20
у нее дока неплохая, обычно там все найти можно
ну так можно практически о любом крупном модуле сказать.

Maxim robox
14.12.2017
09:58:22
А, тьфу

Я гоню

Почему-то про sqlite подумал

Евгений
14.12.2017
09:58:38
если модуль плохо документирован, то его мало кто использует

Почему-то про sqlite подумал
вот и я думаю, что что-то не то

Страница 4380 из 9768