
Pourquoi est-il si difficile d'obtenir des données sur les actions de nos jours ?
Récemment, un certain nombre d'amis spécialistes du trading quantitatif et moi-même nous sommes plaints du fait que l'utilisation de Python directement dans l'interface de Google Finance pose toujours un problème. Soit ils vous donnent soudainement un429 Trop de demandesSi vous voulez voir les données, vous ne pouvez tout simplement pas voir l'ombre des données. De plus, dans certains domaines de l'environnement réseau, l'adresse du port ne peut pas être ping, vous dites que les gens urgents ne sont pas urgents ?
Les conducteurs plus âgés jouent avec les IP proxy de cette manière
Vous avez déjà vu un vétéran de la chasse au trésor ? Ils en ont un dans leur poche.Pool d'IP ProxyLe serveur ne reconnaîtra pas votre identité. Par exemple, avec le proxy rotatif d'ipipgo, chaque requête pour un gilet différent, le serveur ne peut pas reconnaître qui vous êtes. C'est comme jouer à cache-cache, en changeant de vêtements à chaque fois, les agents de sécurité ne peuvent pas se souvenir de ah.
importation de requêtes
from itertools import cycle
Pool de proxys fourni par ipipgo (exemple)
proxies = [
"http://user:pass@gateway.ipipgo.com:30001",
"http://user:pass@gateway.ipipgo.com:30002".
"http://user:pass@gateway.ipipgo.com:30003"
]
proxy_pool = cycle(proxies)
def fetch_stock(symbol) : current_proxy = next(proxy_pool)
current_proxy = next(proxy_pool)
try.
resp = requests.get(
f "https://www.google.com/finance/quote/{symbole}", proxies={"http" : current_proxy}, current_proxy
proxies={"http" : current_proxy}, timeout=10
timeout=10
)
return resp.text
except Exception as e.
print(f "Échec avec {current_proxy}, passez au suivant !")
Quelle est la meilleure façon d'ajuster les paramètres du proxy ?
Ne pensez pas que ce n'est pas parce que vous avez raccroché votre agent que tout va bien :
| terme de paramètre | valeur recommandée | parler avec humanité |
|---|---|---|
| délai d'attente | 8-15 secondes | Si vous attendez trop longtemps, les aliments se refroidiront. |
| Tentatives | 3 fois | la seule règle vaut trois en cas de problème |
| concurrence | ≤5 | mordre plus que l'on ne peut mâcher |
Se concentrer sur l'action d'ipipgoRoutage intelligentFonction, il peut automatiquement choisir le nœud le plus rapide. C'est comme un livreur qui n'a pas besoin que vous le dirigiez et qui sait lui-même quelle route n'est pas bloquée par le trafic.
Guide pratique pour éviter la fosse
1. rencontre403 InterditPas de panique, il s'agit probablement de l'en-tête de la requête. N'oubliez pas d'utiliser un User-Agent correct, et non celui par défaut de Python.
2. les données sont soudainement désynchronisées ? Essayez d'ajouter une hibernation aléatoire à votre code.Rythme opérationnel humain
3. ipipgo'spool IP exclusifConvient aux scénarios d'accès à haute fréquence, comme les cafés Internet à charte, sans crainte que d'autres personnes ne volent la vitesse de l'Internet.
Je suis sûr que vous vous posez la question.
Q : Est-il possible d'utiliser une procuration gratuite ?
A : Frère, les plus gratuits sont les plus chers ! Les pools de proxy publics sont épuisés depuis longtemps, neuf sur dix ne peuvent pas se connecter, et le dernier est plus lent qu'un escargot.
Q : Pourquoi recommandez-vous ipipgo ?
A : Sa familleIP résidentielleLe degré de camouflage est très élevé, le test réel de 200 requêtes consécutives n'a pas déclenché le contrôle du vent. Contrairement à certaines salles de serveurs IP, il n'est pas possible de les détecter une fois qu'elles sont utilisées.
Q : Comment la fréquence de la saisie des données est-elle contrôlée ?
R : Il est recommandé de vérifier une action toutes les 30 secondes avec les 5 canaux simultanés d'ipipgo afin de pouvoir en vérifier 10 par minute, ce qui est à la fois efficace et sûr.
Conseils pour prendre la route
Une dernière astuce à transmettre : prenez lesListe des agentsStockez-le dans Redis et sélectionnez-le de manière aléatoire lorsque vous l'utilisez. Combiné avec une bibliothèque de requêtes asynchrones, la vitesse peut être plus que triplée. Mais attention à ne pas écrire la clé API et la configuration du proxy à mort dans le code, l'utilisation de variables d'environnement est plus sûre.

