2017-01-11 3 views
-1

J'ai des problèmes avec la connexion à Internet en utilisant python.Connexion à Internet?

Je suis sur un réseau d'entreprise qui utilise un fichier PAC pour définir des proxies. Maintenant ce serait bien si je pouvais trouver et analyser le PAC pour obtenir ce dont j'ai besoin, mais je ne peux pas.

La bizarrerie:

R peut se connecter à Internet pour télécharger des fichiers par wininet et .External (C_download, ...) donc je sais qu'il est possible et quand je fais:

import ctypes 

wininet = ctypes.windll.wininet 
flags = ctypes.wintypes.DWORD() 
connected = wininet.InternetGetConnectedState(ctypes.byref(flags), None) 
print(connected, hex(flags.value)) 

j'obtenir: 1 0x12 j'ai donc une connexion disponible, mais une fois que j'essaie d'utiliser d'autres fonctions à l'intérieur wininet je suis constamment rencontré des fonctions d'erreur comme:

AttributeError: function 'InternetCheckConnection' not found 

et cela vaut pour à peu près toute autre fonction de wininet, mais cela ne me surprend pas car la seule fonction nommée dans dir (wininet) est InternetGetConnectedState. L'approche de wininet peut clairement fonctionner, mais je n'ai aucune idée de la façon de procéder avec elle [surtout que je n'utilise Windows que dans le travail].

+6

Pour autant que je sache, il n'y a pas besoin de _connect Python au INTERNET_ comme Python lui-même ne se soucie pas vraiment de ce . Assurez-vous simplement que votre ordinateur est connecté à Internet et que Python pourra automatiquement utiliser cette connexion. – ForceBru

+0

Quand vous dites «continuez avec», que voulez-vous faire? –

+0

essayez d'importer les modules indépendamment? 'de ctypes.windll importer wininet'' de ctypes.wintypes importer DWORD' etc. – Aaron

Répondre

0

« ok, si pauvre libellé - changeons simplement que: ouvrir une connexion à une page Web et obtenir son contenu en utilisant python »

On dirait que vous avez réellement besoin BeautifulSoup et Requests. Voici un rapide example d'entre eux étant utilisés pour explorer une page Web

0

Tout d'abord, je fortement suggère d'installer le module requests. Faire du HTTP sans Python est assez pénible.

Selon this answer vous devez télécharger wpad.dat de l'hôte wpad. C'est un fichier texte qui contient l'adresse proxy.

Une fois que vous connaissez les paramètres de proxy, vous pouvez configurer requests pour les utiliser:

import requests 

proxies = { 
    'http': 'http://10.10.1.10:3128', 
    'https': 'http://10.10.1.10:1080', 
} 

requests.get('http://example.org', proxies=proxies)