使用python Web压缩Crunchbase数据

Jay*_*dey 3 python web-scraping python-3.x

码:

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()
Run Code Online (Sandbox Code Playgroud)

我发现以下错误:

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

Ism*_*sma 5

如果删除该行,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()
Run Code Online (Sandbox Code Playgroud)

我自己还没有测试过,但这应该可以帮助您。

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

以下是API入门的参考:https : //data.crunchbase.com/docs/using-the-api

  • API访问似乎仅限于企业帐户:https://about.crunchbase.com/products/pricing/我想自您上次检查以来,这种情况已经改变了? (2认同)