J'essaye le web scraping avec urllib et Beautifulsoup en Python3. La dernière fois, j'ai eu affaire à une erreur de communication due à Proxy. Que faire s'il n'y a pas de réponse en raison des paramètres de proxy dans le scraping Web Python La communication par http fonctionnait bien avec la méthode ci-dessus, mais lorsque je suis devenu un site https, la communication n'a pas été établie et une erreur s'est produite. J'ai des problèmes car il y a beaucoup de https sur les sites Web récents. .. : déçu_relieved: L'ajout de l'élément "https" aux proxys comme indiqué ci-dessous ne résout pas le problème. proxies={"http":"http:proxy.-----.co.jp/proxy.pac", "https":"http:proxy.-----.co.jp/proxy.pac"}
Quand j'ai cherché, j'ai trouvé une bibliothèque appelée requests. J'ai essayé de l'utiliser à la place de urllib et c'était étonnamment facile à résoudre.
Voici un exemple de son utilisation.
requsts_sample.py
import requests
proxies = {
"http":"http://proxy.-----.co.jp/proxy.pac",
"https":"http://proxy.-----.co.jp/proxy.pac"
}
r = requests.get('https://github.com/timeline.json', proxies=proxies)
print(r.text)
Lors de l'utilisation de Beautifulsourp, il semble que vous deviez transmettre le contenu de l'objet obtenu par requests.get. Voici un exemple simple.
python::requests_beautifulsoup_sample.py
import requests
from bs4 import BeautifulSoup
proxies = {
'http':'http://proxy.-----.co.jp/proxy.pac',
'https':'http://proxy.-----.co.jp/proxy.pac'
}
def getBS(url):
html = requests.get(url, proxies=proxies)
bsObj = BeautifulSoup(html.content, "html.parser")
return bsObj
htmlSource = getBS("https://en.wikipedia.org/wiki/Kevin_Bacon")
#Afficher les liens qui existent sur la page
for link in htmlSource.findAll("a"):
if 'href' in link.attrs:
print(link.attrs['href'])
La bibliothèque de requêtes a été incluse lorsque j'ai installé Python 3.5.2 sur Anaconda. Vous pouvez vérifier les packages installés par Anaconda Navigator. Si vous avez installé l'interface graphique sous Windows, vous pouvez le trouver dans Windows-> Tous les programmes-> Anaconda3-> Anaconda Navigator.
Cliquez ici pour le démarrage rapide de la bibliothèque de requêtes
Recommended Posts