代码:

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()

我发现以下错误:

最佳答案

如果删除 response.raise_for_status() 行,您将从 crunchbase 收到以下输出:
请原谅我们的打扰...

当您浏览 www.crunchbase.com 时,您浏览器的某些方面让我们认为您是一个机器人。发生这种情况的原因有以下几个:

  • 你是一个 super 用户,以超人的速度浏览这个网站。
  • 您已在 Web 浏览器中禁用了 JavaScript。
  • 第三方浏览器插件(例如 Ghostery 或 NoScript)阻止 JavaScript 运行。此支持文章中提供了其他信息。

  • 事实上,你是一个机器人,你应该尝试使用他们自己的 API,而不是 Python 请求。
    编辑
    要使用 crunchbase API,您需要在此处注册:https://about.crunchbase.com/solutions/ 免费基本访问许可证应该足以根据文档访问组织。
    注册后,您将拥有一个用户 API key ,然后您可以按如下方式提出请求:
    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

    关于python - 使用 python 抓取 crunchbase 数据的网页,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47132884/

    10-13 08:34