如何使用程式碼示範建立 Crunchbase Scraper
In einer Zeit, in der Daten Gold wert sind, ist Crunchbase eine Goldgrube. Hier finden Sie Tausende von Unternehmensprofilen, deren Investitionsdaten, Führungspositionen, Finanzierungsinformationen, Neuigkeiten und vieles mehr. Crunchbase Scraping ermöglicht es Ihnen, an die Goldbrocken (die Erkenntnisse, die Sie benötigen) zu gelangen und alle Trümmer (alle anderen für Sie irrelevanten Informationen) herauszufiltern.
In diesem Artikel führen wir Sie durch den Prozess der Erstellung eines Crunchbase-Scraper von Grund auf, einschließlich aller technischen Details und des Codes mit Python, mit einer funktionierenden Demo, die Sie mitverfolgen können. Vor diesem Hintergrund sollten Sie sich auch darüber im Klaren sein, dass der Bau eines Crunchbase-Scraper eine zeitaufwändige Aufgabe mit vielen Herausforderungen ist. Aus diesem Grund werden wir auch eine Demo eines alternativen Ansatzes mit Proxycurl durchgehen, einem kostenpflichtigen API-basierten Tool, das Ihnen die Arbeit abnimmt. Wenn Sie beide Optionen auf dem Tisch haben, können Sie deren Vorteile abwägen und diejenige auswählen, die Ihren Anforderungen am besten entspricht.
Hier ist ein kleiner Vorgeschmack auf einen einfachen Crunchbase-Scraper, der Python verwendet, um den Firmennamen und die Stadt des Hauptsitzes aus der Website zu extrahieren.
import requests from bs4 import BeautifulSoup url = 'https://www.crunchbase.com/organization/apple' headers = {'User-Agent': 'Mozilla/5.0'} response = requests.get(url, headers=headers) soup = BeautifulSoup(response.content, 'html.parser') name_section = soup.find('h1', class_='profile-name') company_name = name_section.get_text(strip=True) if name_section else 'N/A' headquarters_section = soup.find('span', class_='component--field-formatter field_type_text') headquarters_city = headquarters_section.get_text(strip=True) if headquarters_section else 'N/A' print(f"Company Name: {company_name}") print(f"Headquarters City: {headquarters_city}")
Nun zu unserem alternativen Ansatz, Proxycurl. Es ist ein vergleichsweise effizientes Crunchbase-Scraping-Tool und Sie können mit nur wenigen Codezeilen dieselben Unternehmensinformationen abrufen. Der zusätzliche Vorteil besteht darin, dass Sie sich mit Proxycurl keine Gedanken über HTML-Parsing oder Scraping-Hürden machen müssen.
import requests api_key = 'YOUR_API_KEY' headers = {'Authorization': 'Bearer ' + api_key} api_endpoint = 'https://nubela.co/proxycurl/api/linkedin/company' params = { 'url': 'https://www.linkedin.com/company/apple/', } response = requests.get(api_endpoint, params=params, headers=headers) data = response.json() print(f"Company Name: {data['company_name']}") print(f"Company Headquarter: {data['hq']['city']}")
Am Ende dieses Artikels sind Sie mit beiden Methoden vertraut und können eine fundierte Entscheidung treffen. Egal, ob Sie nun die Ärmel hochkrempeln und Ihren eigenen Schaber programmieren möchten oder eine Lösung aus einer Hand suchen: Lesen Sie weiter, um Ihren Crunchbase-Schaber einzurichten.
Erstellen Sie Ihren Crunchbase Scraper von Grund auf
Crunchbase enthält verschiedene Datentypen, darunter Akquisitionen, Personen, Ereignisse, Hubs und Finanzierungsrunden. In diesem Artikel erstellen wir einen einfachen Crunchbase-Scraper, um die Beschreibung eines Unternehmens zu analysieren und als JSON-Daten abzurufen. Nehmen wir als Beispiel Apple.
Zuerst müssen wir eine Funktion definieren, um die Firmenbeschreibung zu extrahieren. Die Funktion get_company_description() sucht nach dem Span-HTML-Element, das die Beschreibung des Unternehmens enthält. Anschließend wird der Text extrahiert und zurückgegeben:
def get_company_description(raw_html): description_section = raw_html.find("span", {"class": "description"}) return description_section.get_text(strip=True) if description_section else "Description not found"
Dadurch wird eine HTTP-GET-Anfrage an die URL des Unternehmensprofils gesendet, das Sie auswerten möchten, in diesem Fall das Profil von Apple. So sieht der vollständige Code aus:
import requests from bs4 import BeautifulSoup def get_company_description(raw_html): # Locate the description section in the HTML description_section = raw_html.find("span", {"class": "description"}) # Return the text if found, else return a default message return description_section.get_text(strip=True) if description_section else "Description not found" # URL of the Crunchbase profile to scrape url = "https://www.crunchbase.com/organization/apple" # Set the User-Agent header to simulate a browser request headers = {"User-Agent": "Mozilla/5.0"} # Send a GET request to the specified URL response = requests.get(url, headers=headers) # Check if the request was successful (status code 200) if response.status_code == 200: # Parse the HTML content of the response using BeautifulSoup soup = BeautifulSoup(response.content, "html.parser") # Call the function to get the company description company_description = get_company_description(soup) # Print the retrieved company description print(f"Company Description: {company_description}") else: # Print an error message if the request failed print(f"Failed to retrieve data. Status Code: {response.status_code}")
Dieses Skript dient dazu, die Unternehmensbeschreibung von Apple aus Crunchbase abzurufen. Abhängig von Ihrer Erfahrung und dem, wonach Sie suchen, kann es viel schwieriger werden. Der Umgang mit großen Datenmengen, die Verwaltung der Paginierung, die Umgehung von Authwall-Mechanismen – auf dem Weg dorthin gibt es viele Hürden. Denken Sie daran, dass Sie Folgendes tun müssen:
- Führen Sie diese Aktion für jedes einzelne Feld aus, das Sie interessiert.
- Bleiben Sie über alle Änderungen auf der Webseite auf dem Laufenden. Selbst eine kleine Änderung in der Darstellung eines Felds auf der Website kann zu einer geringfügigen oder erheblichen Änderung der Scraping-Logik führen.
**Hinweis: Überprüfen Sie die Nutzungsbedingungen der Website und die robots.txt-Datei, um sicherzustellen, dass Sie verantwortungsbewusst und innerhalb der gesetzlichen Grenzen scrapen.
Warum ist der Bau eines Crunchbase Scrapers eine Herausforderung?
Der Bau eines eigenen Crunchbase-Schabers ist eine praktikable Option, aber bevor Sie loslegen, sollten Sie sich darüber im Klaren sein, welche Herausforderungen auf Sie warten.
Genauigkeit und Vollständigkeit
Ihre Bemühungen sind sinnlos, wenn die extrahierten Daten falsch sind. Manuelles Scraping erhöht die Fehlerquote und der Code übersieht möglicherweise wichtige Daten, wenn die Seite nicht vollständig geladen wird oder wenn Inhalte in Iframes oder externe Ressourcen eingebettet sind.
Struktur und Änderungen von Crunchbase
Das Parsen des HTML-Codes einer Webseite zum Extrahieren bestimmter Datenfelder ist ein grundlegender Schritt beim Scraping. Der HTML-Code von Crunchbase ist komplex, mit dynamischen Elementen und mehreren Containerebenen. Es ist eine Aufgabe für sich, die richtigen Daten zu identifizieren und gezielt einzusetzen. Zusammen mit der sich ändernden Struktur der Website kann dies Ihre Arbeit um das Zehnfache erschweren.
Umgang mit Authwalls und Anti-Scraping-Mechanismen
Crunchbase schützt die meisten seiner Daten hinter einer Authwall und erfordert Anmeldeinformationen oder ein Premium-Konto. Die manuelle Handhabung von Anmeldesitzungen, Token oder Cookies im Scraper macht die Aufgabe komplexer, insbesondere wenn es darum geht, diese Sitzungen über mehrere Anfragen hinweg aufrechtzuerhalten. Ebenso verwendet Crunchbase Bot-Erkennungssysteme und Anfragen zur Ratenbegrenzung. Sie laufen Gefahr, blockiert zu werden, und um diese Schutzmaßnahmen zu umgehen, müssen Techniken wie rotierende Proxys oder der Umgang mit CAPTCHAs implementiert werden, was leichter gesagt als getan ist.
Der Bau Ihres eigenen Crunchbase-Schabers gibt Ihnen Flexibilität und ein Erfolgserlebnis, aber wägen Sie das gegen die damit verbundenen Herausforderungen ab. Es erfordert umfassendes technisches Fachwissen, ständige Überwachung und Anstrengung, um die gewünschten Daten zu erhalten. Ganz zu schweigen davon, wie zeitaufwändig und fehleranfällig der Prozess sein kann. Überlegen Sie, ob sich der Aufwand und die Wartung für Ihre Bedürfnisse wirklich lohnen.
Der problemlose Weg, einen Crunchbase Scraper einzurichten
Puh! Der Aufbau Ihres Crunchbase Scrapers von Grund auf ist mit Sicherheit eine ernsthafte Arbeit. Sie müssen nicht nur viel Zeit und Mühe investieren, sondern auch nach potenziellen Herausforderungen Ausschau halten. Gott sei Dank gibt es Proxycurl!
Nutzen Sie die Endpunkte von Proxycurl und erhalten Sie alle Daten, die Sie sich nur wünschen können, im JSON-Format. Und da Crunchbase nur öffentliche Daten über das Unternehmen bereitstellt, liegen keine Daten außerhalb Ihrer Reichweite. Jeder Versuch, private Informationen zu extrahieren, führt zu 404. Seien Sie versichert, dass Ihnen für eine Anfrage, die einen Fehlercode zurückgibt, niemals Gebühren berechnet werden.
Proxycurl stellt Ihnen eine Liste von Standardfeldern unter dem Firmenprofil-Endpunkt zur Verfügung. Ein vollständiges Beispiel einer Antwort finden Sie in der Dokumentation auf der rechten Seite unter der Anfrage, die sie generiert hat. Proxycurl hat die Möglichkeit, die folgenden Felder auf Ihren Wunsch zu scannen:
- Kategorien
- Finanzierungsdaten
- exit_data
- Akquisitionen
- extra
Für jedes dieser von Ihnen angeforderten Felder fallen zusätzliche Kreditkosten an. Wählen Sie daher nur die Parameter aus, die Sie benötigen. Aber wenn Sie sie brauchen, speichert Proxycurl sie um einen einzigen Parameter!
Da wir nun mit Proxycurl vertraut sind, gehen wir eine funktionierende Demo durch. Wir werden zwei Beispiele hinzufügen, für Postman und dann für Python.
Crunchbase-Scraping mit Proxycurl über Postman
Schritt 1: Richten Sie Ihr Konto ein und erhalten Sie Ihren API-Schlüssel
Erstellen Sie ein Konto bei Proxycurl und Ihnen wird ein eindeutiger API-Schlüssel zugewiesen. Proxycurl ist eine kostenpflichtige API und Sie müssten jede Anfrage mit einem Bearer-Token (Ihrem API-Schlüssel) authentifizieren. Sie erhalten außerdem 100 Credits, wenn Sie sich mit Ihrer geschäftlichen E-Mail-Adresse angemeldet haben, und 10 Credits, wenn Sie Ihre private E-Mail-Adresse verwendet haben. Dann können Sie sofort mit dem Experimentieren beginnen! So sollte Ihr Dashboard aussehen.
Von hier aus können Sie nach unten scrollen und wählen, ob Sie mit dem Personenprofil-Endpunkt oder dem Firmenprofil-Endpunkt arbeiten möchten. Der Personenprofil-Endpunkt ist ein nützliches Tool, wenn Sie LinkedIn durchsuchen möchten. Weitere Informationen finden Sie unter „So erstellen Sie einen LinkedIn Data Scraper“.
Für diesen Anwendungsfall arbeiten wir lediglich mit dem Unternehmensprofil-Endpunkt.
Schritt 2: Führen Sie Postman aus und legen Sie Ihr Inhaber-Token fest
Gehen Sie zur Sammlung von Proxycurl in Postman, klicken Sie auf das Dokument „Firmenprofil-Endpunkt“, suchen Sie nach der orangefarbenen Schaltfläche „In Postman ausführen“ und klicken Sie darauf. Klicken Sie dann auf „Fork Collection“ und melden Sie sich an, wie Sie möchten. Es sollte ungefähr so aussehen. Wir haben ein vollständiges Tutorial zum Einrichten der Proxycurl-API in Postman.
Einrichten der Proxycurl-API in Postman
Sobald Sie sich in Postman befinden, gehen Sie zu „Autorisierung“, wählen Sie „Bearer Token“, fügen Sie Ihr Token (Ihren API-Schlüssel) hinzu und beschränken Sie es auf „Proxycurl“. Sie können dies über die Registerkarte „Variablen“ oder über das Popup-Fenster tun, das angezeigt wird, wenn Sie mit der Eingabe in das Feld „Token“ beginnen. Benennen Sie den Token nach Ihren Wünschen oder verwenden Sie einfach den Namen „Inhaber-Token“.
Stellen Sie sicher, dass der Autorisierungstyp auf „Bearer Token“ eingestellt ist und dass Sie {{Bearer Token}} in das Token-Feld eingegeben haben, und klicken Sie oben rechts auf Speichern. Denken Sie daran, auf Speichern zu klicken!! Ihre Seite sollte so aussehen:
Schritt 3: Navigieren Sie zu Ihrem Arbeitsbereich
Gehen Sie auf der linken Seite unter „Mein Arbeitsbereich“ zu Ihrer Proxycurl-Sammlung und dann zur Unternehmens-API. Im Dropdown-Menü finden Sie eine Liste mit Optionen. Folgendes müssen Sie jedoch wissen:
- Company Profile Endpoint: Enriches company profile with Crunchbase data like funding, acquisitions, etc. You will need to use the company’s LinkedIn profile URL as input parameter to the API.
- Company Lookup Endpoint: Input a company’s website and get its LinkedIn URL.
- Company Search Endpoint: Input various search parameters and find a list of companies that matches that search criteria, and then pull Crunchbase data for these companies.
The various company-related endpoints
Step 4: Edit your params and send!
Go to Company Profile Endpoint and from there, you can uncheck some of the fields if you want or modify others. For instance, you might want to change use_cache from if-present to if-recent to get the most up-to-date info, but maybe you don't need the acquisitions information this time.
Choose the relevant fields that you need. Some cost extra credits.
Once you've modified all the fields to your liking, click the blue "Send" button in the upper left-hand corner. Your output should look something like this.
If you come across a 401 status code, it is most likely you forgot to hit Save after setting the Authorization type to {{Bearer Token}} in Step 2. A good way to troubleshoot this is to see if you can fix it by editing the Authorization tab for this specific query to be the {{Bearer Token}} variable. If that fixes it, then the auth inheritance isn't working, which probably means you forgot to save.
Crunchbase scraping with Proxycurl via Python
Now let’s try and do the same with Python. In the Proxycurl docs under Company Profile Endpoint, you can toggle between shell and Python. We’ll use the company endpoint to pull Crunchbase-related data, and it’s as simple as switching to Python in the API docs.
Toggle between shell and Python
Now, we can paste in our API key where it says YOUR_API_KEY. Once we have everything set up, we can extract the JSON response and print it. Here’s the code for that, and you can make changes to it as needed:
import requests api_key = 'YOUR_API_KEY' headers = {'Authorization': 'Bearer ' + api_key} api_endpoint = 'https://nubela.co/proxycurl/api/linkedin/company' params = { 'url': 'https://www.linkedin.com/company/apple/', 'categories': 'include', 'funding_data': 'include', 'exit_data': 'include', 'acquisitions': 'include', 'extra': 'include', 'use_cache': 'if-present', 'fallback_to_cache': 'on-error', } response = requests.get(api_endpoint, params=params, headers=headers) print(response.json())
Now, what you get is a structured JSON response that includes all the fields that you have specified. Something like this:
"linkedin_internal_id": "162479", "description": "We're a diverse collective of thinkers and doers, continually reimagining what's possible to help us all do what we love in new ways. And the same innovation that goes into our products also applies to our practices -- strengthening our commitment to leave the world better than we found it. This is where your work can make a difference in people's lives. Including your own.\n\nApple is an equal opportunity employer that is committed to inclusion and diversity. Visit apple.com/careers to learn more.", "website": "http://www.apple.com/careers", "industry": "Computers and Electronics Manufacturing", "company_size": [ 10001, null ], "company_size_on_linkedin": 166869, "hq": { "country": "US", "city": "Cupertino", "postal_code": "95014", "line_1": "1 Apple Park Way", "is_hq": true, "state": "California" }, "company_type": "PUBLIC_COMPANY", "founded_year": 1976, "specialities": [ "Innovative Product Development", "World-Class Operations", "Retail", "Telephone Support" ], "locations": [ { "country": "US", "city": "Cupertino", "postal_code": "95014", "line_1": "1 Apple Park Way", "is_hq": true, "state": "California" } ] ...... //Remaining Data }
Great! Congratulations on your journey from zero to data!
Is any of this legal?
Yes, scraping Crunchbase is legal. The legality of scraping is based on different factors like the type of data, the website’s terms of service, data protection laws like GDPR, and much more. The idea is to scrape for publicly available data within these boundaries. Since Crunchbase only houses public data, it is absolutely legal to scrape by operating within the Crunchbase Terms of Service.
Final thoughts
A DIY Crunchbase scraper can be an exciting project and gives you full control over the data extraction process. But be mindful of the challenges that come with it. Facing a roadblock in each step can make scraping a time-consuming and often fragile process that requires technical expertise and constant maintenance.
Proxycurl provides a simpler and more reliable alternative. Follow along with the steps and you can access structured company data through an API without worrying about any roadblocks. Dedicate your time by focusing on using the data and leave the hard work and worry to Proxycurl!
We'd love to hear from you! If you build something cool with our API, let us know at hello@nubela.co! And if you found this guide useful, there's more where it came from - sign up for our newsletter!
以上是如何使用程式碼示範建立 Crunchbase Scraper的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

JavaScript是現代Web開發的基石,它的主要功能包括事件驅動編程、動態內容生成和異步編程。 1)事件驅動編程允許網頁根據用戶操作動態變化。 2)動態內容生成使得頁面內容可以根據條件調整。 3)異步編程確保用戶界面不被阻塞。 JavaScript廣泛應用於網頁交互、單頁面應用和服務器端開發,極大地提升了用戶體驗和跨平台開發的靈活性。

Python和JavaScript開發者的薪資沒有絕對的高低,具體取決於技能和行業需求。 1.Python在數據科學和機器學習領域可能薪資更高。 2.JavaScript在前端和全棧開發中需求大,薪資也可觀。 3.影響因素包括經驗、地理位置、公司規模和特定技能。

實現視差滾動和元素動畫效果的探討本文將探討如何實現類似資生堂官網(https://www.shiseido.co.jp/sb/wonderland/)中�...

JavaScript的最新趨勢包括TypeScript的崛起、現代框架和庫的流行以及WebAssembly的應用。未來前景涵蓋更強大的類型系統、服務器端JavaScript的發展、人工智能和機器學習的擴展以及物聯網和邊緣計算的潛力。

如何在JavaScript中將具有相同ID的數組元素合併到一個對像中?在處理數據時,我們常常會遇到需要將具有相同ID�...

不同JavaScript引擎在解析和執行JavaScript代碼時,效果會有所不同,因為每個引擎的實現原理和優化策略各有差異。 1.詞法分析:將源碼轉換為詞法單元。 2.語法分析:生成抽象語法樹。 3.優化和編譯:通過JIT編譯器生成機器碼。 4.執行:運行機器碼。 V8引擎通過即時編譯和隱藏類優化,SpiderMonkey使用類型推斷系統,導致在相同代碼上的性能表現不同。

探索前端中類似VSCode的面板拖拽調整功能的實現在前端開發中,如何實現類似於VSCode...
