2017-01-28 3 views
1

Ich möchte Daten aus der folgenden URL http://www.transfermarkt.co.uk/wettbewerbe/europaschaben Daten mit beautifulsoup Ergebnisse in 404

I tpyically verwenden BeautifulSoup für einen solchen Job kratzen. Aber diesmal bekomme ich einen 404 Fehler, aber ich weiß nicht warum, weil ich über den Browser auf die Seite zugreifen kann.

Dies ist mein Code:

url = 'http://www.transfermarkt.co.uk/wettbewerbe/europa' 
    response = urllib.request.urlopen(url) 
    soup = BeautifulSoup(response) 
    print(soup) 

ich diesen Fehler: urllib.error.HTTPError: HTTP Error 404: Not Found in Zeile 2.

Irgendwelche Ideen, warum dies geschieht?

Antwort

1
import requests, bs4 
url = 'http://www.transfermarkt.co.uk/wettbewerbe/europa' 
headers = {"User-Agent":"Mozilla/5.0"} 
response = requests.get(url, headers=headers) 
soup = bs4.BeautifulSoup(response.text, 'lxml') 
print(soup) 

hinzufügen User-Agent den Anforderungen Header, verwende ich requests Bibliothek können Sie urllib verwenden die gleichen

+0

dank paaren zu tun. für die 'print (suppe)' bekomme ich einen weiteren Fehler: 'UnicodeEncodeError: 'charmap' Codec kann das Zeichen '\ u2261' nicht in Position 21727 codieren: character maps to '. scheint mit der Zeichencodierung verwandt zu sein? – beta

+1

update: Ich habe '# - * - coding: utf-8 - * -' in den Header meiner Python-Datei geschrieben. funktioniert jetzt. Vielen Dank. – beta