我从python中获得的与从firebug中看到的不同

我从python中获得的与从firebug中看到的不同,python,python-2.7,beautifulsoup,Python,Python 2.7,Beautifulsoup,我正在练习编写一个网络爬虫,从网站上抓取一些有趣的信息。我在我的个人网站上尝试这段代码。它的工作原理与我期望的一样,但当我试图在真实的网站上实现此代码时,它并没有显示它应该显示的内容。有人有什么想法吗?下面是我的代码和结果 import requests from bs4 import BeautifulSoup url = 'https://angel.co/parkwhiz/jobs/284942-product-manager' page = requests.get(url).text

我正在练习编写一个网络爬虫,从网站上抓取一些有趣的信息。我在我的个人网站上尝试这段代码。它的工作原理与我期望的一样,但当我试图在真实的网站上实现此代码时,它并没有显示它应该显示的内容。有人有什么想法吗?下面是我的代码和结果

import requests
from bs4 import BeautifulSoup

url = 'https://angel.co/parkwhiz/jobs/284942-product-manager'
page = requests.get(url).text
soup = BeautifulSoup(page,'lxml')
print soup.prettify()
打印结果

firebug(或铬检验)导致的结果


打印中显示的标题是“未找到页面-404-AngelList”,但firebug中显示的标题是“Parkwhiz-AngelList的产品经理职务”。我的代码有什么问题吗?这两个人不应该是一对吗

当您传递默认的
用户代理时,网站正在阻止脚本,该代理告诉网站它是一个自动Python脚本

如果你检查状态码,你会看到你得到404

>>> r = requests.get('https://angel.co/parkwhiz/jobs/284942-product-manager')
>>> r.status_code
404
要解决此问题,请将
用户代理更改为真实的浏览器:

>>> headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36'}
>>> r = requests.get('https://angel.co/parkwhiz/jobs/284942-product-manager', headers=headers)
>>> r.status_code
200

谢谢你的评论。这真的很有帮助。还有一个问题,我阅读了请求的文档,但大多数事情对我来说都不太合理。为了更好地理解软件包并正确使用它,您是否有任何推荐的来源,或者我需要什么知识来阅读文档?再次感谢。非常感谢。您可以尝试阅读以下内容: