
Qu'est-ce que cette chose peut bien faire ?
L'ancien iron do crawler peut avoir rencontré cette situation, avec Qt a écrit un navigateur intégré pour saisir des données, les résultats du site cible clic bloquer l'IP. Cette fois, si vous pouvez donner à l'ensemble QWebEngine un gilet pour changer l'identité de la chose est beaucoup mieux. En clair, il s'agit de rendre le programme semblable à un caméléon, chaque visite étant accompagnée d'une adresse IP différente.
Pour donner un exemple concret, il existe une équipe qui compare les prix du commerce électronique et qui a utilisé Qt pour créer un outil d'interrogation par lots. En conséquence, une plateforme d'achat a détecté des visites fréquentes sur la même IP, directement au noir. Plus tard, ils ont donné QWebEngine hang ipipgo proxy résidentiel dynamique, chaque heure automatiquement changer 200 + IP, la collecte de données ne tourne jamais.
Deux astuces pour corriger les paramètres du proxy
Le premier mouvement est celui d'un agent global :Idéal pour les situations où l'ensemble de l'application doit passer par un proxy, configuré directement au démarrage du programme. Sachez toutefois que cela peut affecter d'autres requêtes réseau.
// Ajouter ces lignes à la fonction principale
QNetworkProxy proxy ; proxy.setType(QNetworkProxy::HttpProxy) ;
proxy.setType(QNetworkProxy::HttpProxy) ; proxy.setHostName("proxy.ipipgo.com") ; // Remplacer par le proxy actuel.
proxy.setHostName("proxy.ipipgo.com") ; // Remplacer par le serveur proxy actuel.
proxy.setPort(9001) ;
QNetworkProxy::setApplicationProxy(proxy) ;
La deuxième astuce est un contrôle précis :La configuration du proxy uniquement pour le composant du navigateur n'affecte pas le reste du programme. Cette méthode est plus souple et convient aux scénarios qui nécessitent plusieurs instances de navigateur.
QWebEngineProfile profile = new QWebEngineProfile(this) ;
QNetworkProxy proxy ; proxy.setType(QNetworkProxy::HttpProxy) ;
proxy.setType(QNetworkProxy::HttpProxy) ; proxy.setHostName("dynamic.ipipgo.net")
proxy.setHostName("dynamic.ipipgo.net") ; //adresse dynamique du proxy résidentiel
proxy.setPort(32000.
profile->setProxy(proxy) ;
QWebEnginePage page = new QWebEnginePage(profile, this) ;
webView->setPage(page) ;
Manuel de configuration pratique de l'ipipgo
Nous vous recommandons d'utiliser leur offre Dynamic Residential pour obtenir le meilleur rapport qualité-prix. Il s'agit d'un processus en trois étapes :
1) Aller sur le site officiel pour s'enregistrer et entrer dans la console, sélectionner le canal proxy HTTP.
2) Sélectionnez API Extraction dans "Access Method" et obtenez l'adresse de l'interface :
https://api.ipipgo.com/get?key=你的密钥&count=10
3. le code demande régulièrement à cette interface d'obtenir le dernier groupe d'adresses IP.
| Type d'emballage | Scénario | prix |
|---|---|---|
| Dynamique résidentielle (standard) | Collecte de données de routine | 7,67/GB/mois |
| Dynamic Residential (Entreprise) | Exigences en matière de visites fréquentes | 9,47 RMB/GB/mois |
| Maisons statiques | IP fixe requis | 35/IP/mois |
Questions fréquemment posées
Q:Pourquoi le proxy ne prend-il pas effet après que je l'ai configuré ?
R : Vérifiez d'abord trois points : 1. le port n'est pas rempli de manière incorrecte 2. la sélection du type de proxy n'est pas correcte 3. l'environnement réseau autorise les connexions externes. Il est recommandé d'utiliser Postman pour tester l'adresse du proxy en premier lieu.
Q : Que se passe-t-il si je dois changer fréquemment d'adresse IP ?
R : Modifiez dynamiquement les paramètres de proxy de QWebEngineProfile dans le callback de fin de chargement de la page. Avec l'extraction de l'API d'ipipgo, il est possible d'obtenir une nouvelle IP pour chaque visite.
Q : Comment choisir entre proxies dynamiques et statiques ?
R : Si vous avez besoin de maintenir la session pendant une longue période, choisissez la solution statique (telle que la connexion analogique), et si vous avez besoin de collecter des données à court terme et à haute fréquence, choisissez la solution dynamique. Si le budget est suffisant, il est recommandé d'utiliser les deux packages ensemble.
Trucs et astuces à froid
Il existe une fonctionnalité cachée que beaucoup de gens ignorent : la possibilité de définir des proxys différents pour des onglets différents. En créant plusieurs instances de QWebEngineProfile, chaque instance est liée à une configuration de proxy différente. Cela permet de réaliser des tâches multiples et des captures parallèles, ce qui double directement l'efficacité.
Par exemple, lorsque vous effectuez une comparaison de prix, vous pouvez avoir 5 onglets ouverts en même temps :
- Label 1 avec IP américain
- Label 2 avec IP japonais
- L'étiquette 3 prend la ligne TK
…
Chaque page porte une identité géographique différente pour collecter des données, ce qui ne risque pas de déclencher un effet d'aubaine, mais permet également de capturer des informations géographiquement différenciées.
Enfin, vous devez accorder une attention particulière à la gestion de la mémoire des paramètres du proxy. Chaque fois que vous créez un nouveau QWebEngineProfile, n'oubliez pas de définir l'objet parent, sinon il est facile d'avoir des fuites de mémoire. Si vous n'y arrivez pas, le support technique d'ipipgo peut vous aider à regarder le code, et ce service 1v1 est très utile.

