我正在练习编写一个网络抓取工具来抓取网站上的一些有趣信息。我在我的个人网站上试用这段代码。它可以像我期望的那样工作,但是当我尝试在真实的网站上实现这个代码时,它没有显示它应该显示的内容。有没有人有任何想法?以下是我的代码和结果。
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()
打印结果
来自萤火虫(或铬检查)的结果
在印刷品中显示的标题是"未找到页面 - 404 - AngelList",但是在firebug中显示的标题是"产品经理Job at Parkwhiz - AngelList"。我的代码有什么问题吗?难道这两者不一样吗?
答案 0 :(得分:3)
当您通过默认User-Agent
时,网站会阻止该脚本,该默认>>> r = requests.get('https://angel.co/parkwhiz/jobs/284942-product-manager')
>>> r.status_code
404
告诉网站它是一个自动化的Python脚本。
如果您查看状态代码,则会看到您获得404.
User-Agent
要解决此问题,请将>>> 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
更改为真正的浏览器:
DECLARE @startTime DateTime;
DECLARE @endTime DateTime;