Web使用python对crunchbase数据进行报废

时间:2017-11-06 08:46:30

标签: python python-3.x web-scraping

代码:

import requests

response= requests.get("https://www.crunchbase.com/search/people/field/organizations/num_employees_enum/anheuser-busch")

response.raise_for_status()

webFile =open('myFile.txt', 'wb')

for chunk in res.iter_content(10000):
    webFile.write(chunk)
    webFile.close()

我发现了以下错误:

  

requests.exceptions.HTTPError:416客户端错误:请求的范围不是   网址满意:   https://www.crunchbase.com/search/people/field/organizations/num_employees_enum/anheuser-busch

1 个答案:

答案 0 :(得分:4)

如果删除行response.raise_for_status(),您将收到来自crunchbase的以下输出:

原谅我们的中断......

  当您浏览 www.crunchbase.com 时,您的浏览器会让我们觉得您是一个机器人。这可能有几个原因:

      
  • 您是超级人力的移动本网站的超级用户。
  •   
  • 您已在网络浏览器中停用了JavaScript。
  •   
  • 第三方浏览器插件(如Ghostery或NoScript)阻止JavaScript运行。有关其他信息,请参阅此支持文章。

事实上,你是一个机器人,而不是Python请求,你应该尝试使用自己的API。

修改

要使用crunchbase API,您需要在此处注册:https://about.crunchbase.com/solutions/免费的基本访问许可证应足以根据文档访问组织。

注册后,您将拥有用户API密钥,然后您可以按如下方式提出请求:

https://api.crunchbase.com/v3.1/organizations?user_key=[user_key]

使用API​​进行的查询等效于:

import json,requests

url = "https://api.crunchbase.com/v3.1/organizations/anheuser-busch"

params = dict(user_key="your_key")

resp = requests.get(url=url, params=params)
data = json.loads(resp.text)

webFile = open('myFile.txt', 'w')

for organization in data:
    webFile.write(organization["num_employees_max"])

webFile.close()

我自己没有测试过,但它应该让你去。

以下是组织可用的所有数据:https://data.crunchbase.com/docs/organization

以下是开始使用API​​的参考:https://data.crunchbase.com/docs/using-the-api