2016-04-18 5 views
1

Существует сайт, который счастливо открывается в браузере и возвращает ошибку 403 HTTP при открытии в Python следующим образом:сайт открывается в браузере, но вернуться 403 при открытии в Python

from bs4 import BeautifulSoup 
import urllib2 

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

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

print soup.prettify() 

Сайт является популярным служба новостей. Можно ли затем вернуть URL-адрес HTTP 403 при открытии с помощью фрагмента кода, как указано выше? Спасибо,

+1

Это означает, что сайт не позволяет скребки. подделать пользовательский агент, чтобы пройти мимо этого. – n1c9

+0

Что именно вы имеете в виду? – tsotsi

+2

Посмотрите, как установить пользовательский агент с помощью urllib2 – n1c9

ответ

1

Нашли ответ, воспользовавшись комментариями выше. Код ниже и полный ответ можно найти здесь: 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()