LINUX.ORG.RU

Как загружать и парсить веб-страницы на C++/Qt?

 , ,


0

2

Не в том смысле, как работать с QNetworkAccessManager, а как правильно получить контент сайта. Запросил я сайт, а QNetworkAccessManager возвращает либо «Moved permanently», либо «требуется javascript и cookies для просмотра сайта», а в браузере эти сайты отображаются нормально. Какие по этому вопросу есть варианты решений что бы не заморочно получить контент, примерно в том виде, как его видно в браузере при просмотре исходного кода страницы?



Последнее исправление: victor79 (всего исправлений: 1)

Нужно обработать редиректы, и, возможно, поменять заголовок User-Agent

Если же нужен не исходный код страницы, а ее DOM-дерево, то лучше загрузить ее с помощью QtWebKit

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

кажется QtWebKit что-то похожее на то что мне нужно. Я хочу сделать свой сканер интернета для своих нужд.

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

Ты браузер хочешь сделать что ли?

Что такое «сканер интернета»?

Просто качать странички — хватит вгета с курлом. Проводить какие-то простые действия тоже курл может.

А Qt — говно. Зачем ты эту жиробасину используешь? Может у тебя еще и буст есть?

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

Эдуард, ты ли это?
Когда я его делал, целью был универсальный клиент. Ну и контактиком, как ни крути, больше виндовозы пользуются.

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

Я, я. Просто я как-то не встречал вантузятников, которые в командную строку могут. Обычно мышкой только тыкать — на то они и вантузятники.

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

Без буста на крестах жизни нет :) Конечно, когда весь буст впилят в стандартную библиотеку, он станет ненужон.

... Но зачем, когда есть няшный Rust?

Unicode4all ★★★★★
()
Последнее исправление: Unicode4all (всего исправлений: 2)
Ответ на: комментарий от Zhbert

нет, webkit нынче стал unknown module. Теперь там некий QtWebEngine.

victor79
() автор топика
Ответ на: комментарий от ryu

Если хочешь паука написать, то бери питон и суп. А С++ для этого аутизм.

c++ я знаю. А питона и супа я не знаю. И после нужно это все будет интегрировать с другими модулями на с++.

victor79
() автор топика
Ответ на: комментарий от Zhbert

А нафиг оно тогда нужно? Я-то думал, там CLI, тогда хоть какая-то польза от этого есть. А в гуйне же браузеры жирные-текучие есть...

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

А из тебя — актёр. Во-первых, экспрессии маловато. Во-вторых, этот маленький косяк:

Может у тебя еще и буст есть?

Смотри, какая у меня весёлая подпись к Эдику, взятая из его же коммента:

Я один раз вообще бустом воспользовался, хоть на сях собирал...

Deleted
()

Headless Chromium can be built as a library for embedding into a C++ application.

ну ты понел

Ford_Focus ★★★★★
()

Какие по этому вопросу есть варианты решений что бы не заморочно получить контент, примерно в том виде, как его видно в браузере при просмотре исходного кода страницы?

Selenium. /thread

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

И что? Я и кресты не перевариваю, но пишу же модуль к RTS2, и ошибки правил...

anonymous
()

Можно это делать на питоне. BeautifulSoup и Scrapy.

ipeacocks ★★★★★
()

а можете тебе мешает сканер на JS сделать? загружаешь страницу в IFRAME, на stackoverflow написано как туда лазать. результаты можешь через вебсокет лить уже в Qt

qtwebkit надо брать который ng, он в Qt теперь не входит. если там уязвимость, ты можешь себе неприятностей насканить.

ckotinko ☆☆☆
()
Ответ на: комментарий от annulen

Ха, точняк. Посмотрел в историю коммитов, там только ты. А на Qt Summit'е тебя не было видно, емнип. Я просто следую тенденции, в 5.6 его выпилили ибо обновлений не было с 2013-го года. Собрать этого монстра был тот ещё квест. Если компиляция Qt занимала 45-50 минут, то отдельно вебкит компилялся чуть больше часа. Плюс ко всему очень тяжёлая конфигурация, когда шаг влево, шаг вправо от дефолтной делают его некомпиляемым (пробовал), ибо мне на фиг не нужны зависимости вроде gstreamer'a.

Всвязи с вышеизложенными доводами мы таки переводим проекты на QWebEngine.

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

На саммит я и не собирался (че там делать, окучивать производителей автомобилей у меня все равно не получится), а на Qt Con не получилось, к сожалению

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

WebEngine ещё больше компиляется.

ибо мне на фиг не нужны зависимости вроде gstreamer'a

У WebEngine ещё больше зависимостей. Как минимум жёсткая привязка к opengl.

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

Которые тянут пачку зависимостей? Нет, спасибо.

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

Так и я о чём. А webkit видел сколько тянет?

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

Как минимум жёсткая привязка к opengl.

как и любой qml'ной либы после 5.6

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

шаг вправо от дефолтной делают его некомпиляемым

Публичные опции можно менять без опасений. Если есть сомнения спроси у меня

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

Во-первых не все собирают проприетарщину, которую надо распространять третьим лицам. Во-вторых LGPL нигде не запрещает статическую линковку

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