【问题标题】:Website opens in the browser but return 403 when opened in Python网站在浏览器中打开,但在 Python 中打开时返回 403
【发布时间】:2016-08-10 21:20:49
【问题描述】:

有一个网站在浏览器中愉快地打开,用Python打开时返回403 HTTP错误如下:

from bs4 import BeautifulSoup
import urllib2

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

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

print soup.prettify()

该网站是一种流行的新闻服务。那么,当使用上面的一段代码打开 URL 时,是否可以让 URL 返回 HTTP 403 错误? 谢谢,

【问题讨论】:

  • 这意味着该网站不允许抓取工具。伪造一个用户代理来解决这个问题。
  • 你到底是什么意思?
  • 查看如何使用 urllib2 设置用户代理

标签: python url beautifulsoup http-status-code-403 urlopen


【解决方案1】:

感谢上面的 cmets 找到了答案。代码如下,完整答案可以在这里找到: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()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-04
    • 2015-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-12
    • 1970-01-01
    相关资源
    最近更新 更多