Ich versuche Web-Scraping mit urllib und Beautifulsoup in Python3. Letztes Mal habe ich einen Kommunikationsfehler aufgrund von Proxy behoben. Was tun, wenn aufgrund der Proxy-Einstellungen beim Python Web Scraping keine Antwort erfolgt? Die Kommunikation über http funktionierte gut mit der oben genannten Methode, aber als ich eine https-Site wurde, wurde keine Kommunikation hergestellt und es trat ein Fehler auf. Ich bin in Schwierigkeiten, weil es auf den letzten Websites viele https gibt. .. : enttäuscht_relieved: Das Hinzufügen des Elements "https" zu Proxys wie unten gezeigt löst das Problem nicht. proxies={"http":"http:proxy.-----.co.jp/proxy.pac", "https":"http:proxy.-----.co.jp/proxy.pac"}
Als ich nachschaute, fand ich eine Bibliothek namens Anfragen. Ich habe versucht, es anstelle von Urllib zu verwenden, und es war überraschend einfach zu lösen.
Ein Beispiel für die Verwendung ist wie folgt.
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)
Wenn Sie Beautifulsourp verwenden, sollten Sie den Inhalt des von request.get erhaltenen Objekts übergeben. Hier ist ein einfaches Beispiel.
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")
#Zeigen Sie die auf der Seite vorhandenen Links an
for link in htmlSource.findAll("a"):
if 'href' in link.attrs:
print(link.attrs['href'])
Die Anforderungsbibliothek wurde aufgenommen, als ich Python 3.5.2 auf Anaconda installierte. Sie können die von Anaconda Navigator installierten Pakete überprüfen. Wenn Sie die GUI unter Windows installiert haben, finden Sie sie unter Windows-> Alle Programme-> Anaconda3-> Anaconda Navigator.
Klicken Sie hier für den Schnellstart der Anforderungsbibliothek
Recommended Posts