2016-04-18 8 views
1

Es ist eine Website, die in einem Browser öffnet glücklich und gibt einen 403 HTTP-Fehler, wenn in Python wie folgt geöffnet:Webseite wird im Browser geöffnet, aber 403 zurück, wenn in Python geöffnet

from bs4 import BeautifulSoup 
import urllib2 

link = 'http://niezalezna.pl/' 

r = urllib2.urlopen(link).read() 
soup = BeautifulSoup(r, 'lxml') 

print soup.prettify() 

Die Website ein beliebter ist Nachrichtendienst. Ist es dann möglich, einen HTTP-403-Fehler zu erzeugen, wenn er mit einem Code wie oben geöffnet wird? Danke,

+1

Dies bedeutet, dass der Standort darf nicht Schaber. fake einen User-Agent, um darüber zu kommen. – n1c9

+0

Was genau meinst du? – tsotsi

+2

Hier finden Sie Informationen zum Festlegen eines Benutzeragenten mit urllib2 – n1c9

Antwort

1

Die Antwort gefunden dank der obigen Kommentare. Der Code ist unten und die vollständige Antwort finden Sie hier: Changing user agent on urllib2.urlopen

from bs4 import BeautifulSoup 
import urllib2 

link = 'http://niezalezna.pl/' 

opener = urllib2.build_opener() 
opener.addheaders = [('User-agent', 'Mozilla/5.0')] 
response = opener.open(link) 

soup = BeautifulSoup(response, 'lxml') 

print soup.prettify()