LINUX.ORG.RU

На perl такой был. Зачем тебе именно си/го/руст? Чтобы что? Сейчас везде полно spa, что ты собрался там выдирать?

crutch_master ★★★★★
()
Последнее исправление: crutch_master (всего исправлений: 2)

На расте точно нет, ведь на нём только пишут принципиально новые операционки, но есть вот https://github.com/gocolly/colly

dnb ★★★★
()
Ответ на: комментарий от crutch_master

ссылки. свое я написал. но у питона высокие накладные расходы на запуск процессов и т.п. не походит скриптуха ни для чего кроме как сходи в базу, отдай json. пример из жизни: сравниваем тексты с помощью алгоритма левенштейна в 10 процессов, и все ядра заружаются на 100%

tz4678 ★★
() автор топика
Ответ на: комментарий от devl547

нет. мне не нужны сайты. мне нужны только ссылки, ну еще формы парсил бы идеально было. я не хочу сидеть на GoLang это писать. там на написание элементарных вещей уходит куча времени

tz4678 ★★
() автор топика

на python я сам могу написать

Ну так напиши. Че ты тут устроил тогда?

Aswed ★★★★★
()
Ответ на: комментарий от tz4678

но у питона высокие накладные расходы на запуск процессов

а тред пул для кого придумали?

edit: про процессы не знаю, мб тоже есть подобное

BOSS-NIGGER
()
Последнее исправление: BOSS-NIGGER (всего исправлений: 1)
Ответ на: комментарий от tz4678

но у питона высокие накладные расходы на запуск процессов и т.п.

Ну, для http это вообще не существенно. Илти вопрос в парсинге?
Может, тогда написать модуль на C?

Shadow ★★★★★
()
Ответ на: комментарий от spec_po_kiskam

Иди читай что такое GIL до полного просвещения.

Надеюсь, ты не из тех, кто думают, что на одноядерном целероне нет многопотоковости/многозадачности...

Shadow ★★★★★
()
Ответ на: комментарий от Shadow

я код выложил. там сишные биндинги (cchardet, lxml). но тот же чардет aiohttp в основном потоке звапускает и все вешает. у либы архитектура неправильная. она и исключения типа too many open files генерирует (не закрывает лишние соединения и нигде нельзя ограничить максимальное количество открытых), не понятно как заставить все эти действия с определением кодировки производится в отдельном процессе (ProcessPoolExecutor). тупо либа расчитана на то что воркеры будут запускаться под gunicorn, она по-большей части серверная

tz4678 ★★
() автор топика
#! /usr/bin/env python3

import bs4
import sys
soup            = bs4.BeautifulSoup( sys.stdin.read(), "lxml" )

li              = []
links           = soup( 'a' )
title           = soup( 'title' )[ 0 ].text.strip( )
print( "title: ", title )

for link in links:
  href    = link[ 'href' ]
  li.append( href )
  print( "link found: ", href )

Usage:

cat index.html | python3 script.py

а хули не питон?

anonymous
()
Ответ на: комментарий от anonymous

ты, наверное, не внимательно смотрел на питоне я написал кралю github.com/tz4678/wscrap.

Неправильно ты, Дядя Федор, сайты парсишь, надо:

soup( 'title' )[ 0 ].text.strip( )
# заменяем на
html.unescape(soup.title.text.strip())

Там еще у ссылок a может не быть атрибута href, либо может быть дополнительный атрибут download (скачивание файла), могут быть схемы data:, tel:, skype:, mailto:, xdg-open: и т.д.

tz4678 ★★
() автор топика

Если гуглишь и не находится ответ, значит, как правило, что что-то делаешь неправильно. В такой постановке раньше закончится пропускная способность канала/прокси, чем пул процессов Python упрется в скорость работы. На Java делал как связку OkHTTP и Tika. Порядка 400 страниц в секунду вывозит, при этом DOM честно строится, там и линки и контент.

anymouse
()
Ответ на: комментарий от tz4678

Тут надо понимать, что в случае если база собирается 1 раз, а потом медленно дополняется, а не лопатит гигабайты новых данных каждый день, купить нормальный сервер под скриптуху дешевле, чем платить крестовикам год за то что на питоне пишется 1 месяц.

peregrine ★★★★★
()
Ответ на: комментарий от BOSS-NIGGER

Там нет тредов. Там однопоток, который умеет переключаться между задачами.

peregrine ★★★★★
()

Ну и да, когда я парсил кое-какой сайт, то упёрлось всё в канал и прокси чтобы меня не забанило. А питон там, си или ассемблер роли не играло.

peregrine ★★★★★
()
Последнее исправление: peregrine (всего исправлений: 1)
Ответ на: комментарий от tz4678

aiohttp

beautifulsoup

Отменные смузи-технологии из твиттера. Когда достанешь годную библиотеку для http на Си и парсер на нём же, тогда увидишь, что потребление памяти упало минимум раза в два.

anonymous
()
Ответ на: комментарий от anonymous

да. нет же. я и 10 лет назад с помощью requests и beautifulsoup данные собирал.

tz4678 ★★
() автор топика

не походит скриптуха ни для чего кроме как сходи в базу, отдай json

А чем «сходи в базу, отдай json» отличается от «сходи в http, отдай ссылки»?

сравниваем тексты с помощью алгоритма левенштейна в 10 процессов, и все ядра заружаются на 100%

А на сколько должны?

на python я сам могу написать

из вас двоих тормоз не питон.

pinus_nigra
()

тебе нужен краулер на js работающий в браузере и сливающий результат в локальный сокет. или локальный вебсокет.

это дешевле

salozar
()
Ответ на: комментарий от salozar

https://github.com/tz4678/sqlicrawler вот концепт. оно все работает только айпи палится через webrtc. я у разрабов спрашивал как его отключить. мне ничего не ответили. короче лажа

tz4678 ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.