Запрос позиций сайта в выдаче Google при помощи Qt

We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.Timeweb
Let me recommend you the excellent hosting on which EVILEG is located.
For many years, Timeweb has been proving his stability.
For projects on Django I recommend VDS hosting
View Hosting
День добрый.
Вопрос так вопрос… Смотря что Вы хотите получить..
Если хотите просматривать данные по своему сайту, то у Google Search Console и Google Analytics есть API.
Изучаете API и реализовываете запросы с помощью QNetworkAccessManager.
Если хотите искать инфу в поисковике по любому сайту, то можете посмотреть информацию по XML Custom Search API.
А как такового открытого API для проверок позиций сайта Google вроде бы не предоставляет… Иначе бы у всех этих сервисов проверки позиций сайта результаты были бы одинаковые.
То есть необходимо реализовывать систему запросов и обработки поисковой выдачи. Это немаленькая задача, но вполне реализуемая средствами Qt. Только не забывайте, что Google не приемлет автоматизированных средств запросов к поиску и довольно быстро попросит ввести каптчу.
В Google стоит защита. Может, у вас есть подобная практика?
Но думаю, что при парсинге XML выдачи для кастомизированного поиска может что-нибудь получиться.
Посмотрите описание XML API Reference
Евгений, большое спасибо. Ваша статья очень мне помогла, как и урок, который вы написали для работы с QNetworkAccessManager. Я не совсем понял зачем создавать отдельный класс downloade, почему нельзя создать все в widget. Но запрос составил и файл скачал. Запрос выглядит примерно так:
QUrl url(“http://www.google.ru/search?hl=ru&q=платные+комментарии&oq=платные+комментарии&lr=lang_ru&cr=countryRU&xml_no_dtd;”); // URL, к которому будем получать данные
Подскажите, при считывании из файла идет наложение текста выглядит это примерно так:
Пожалуйста.
Есть интерфейс, а есть логика работы с сетью… На мой взгляд логику работы с сетью лучше выносить в отдельный класс. Хотя вы правы, можно было сделать всё в widget`е.
Видимо, в наложении текста должна была быть картинка. Прикрепите её во вложения.
Евгений, подскажите как загрузить массив фотографий при помощи QNetworkAccessManager.
Вот моя реализация.
GoogleQuery::GoogleQuery(QWidget *parent) :
QWidget(parent),
ui(new Ui::GoogleQuery)
{
ui->setupUi(this);
connect(&pageYandexTic,SIGNAL(finished(QNetworkReply*)), SLOT(on_load(QNetworkReply*)));
QStringList list;
QStringList.append(UrlSite1);
QStringList.append(UrlSite2);
QStringList.append(UrlSite3);
}
void GoogleQuery::on_pushButton_clicked()
{
for(int i=0; i<list.size(); i++)
{
QNetworkRequest request;
request.setUrl(list);
pageYandexTic.get(request); // QNetworkAccessManager отправляем запрос с урлом картинки
}
}
void GoogleQuery::on_load(QNetworkReply* reply)
{
QPixmap pixmap;
pixmap.loadFromData(reply->readAll());
ui->label->setPixmap(pixmap);
}
Проблема в том, что изначально выполняется цикл for, а затем on_load. Картинки не успевают загрузиться.
Вам нужно запускать скачивание следующей картинки только тогда, когда скачалась предыдущая, а не сразу запихивать все запросы в кучку.
Правильная реализация будет такая.