以下のサイトからスクレイピングを試みています。
https://www.crunchbase.com/organization/4paradigm
たとえばNumber of Investors : 23を取得したいです。
BeautifulSoupを用いてスクレイピングしようとしたソースコードが以下です。
Python
1import requests 2from bs4 import BeautifulSoup 3 4url = "https://www.crunchbase.com/organization/4paradigm/" 5 6headers = {'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36'} 7r = requests.get(url, headers=headers) 8soup = BeautifulSoup(r.text, "html.parser") 9 10value = soup.find("div _ngcontent-client-app-c349", class_="multiple-sections ng-star-inserted") 11for rt in value.find_all("span", {'class':"component--field-formatter field-type-money ng-star-inserted title"}): 12 rt.extract() 13print(value.get_text())
しかし、以下のようなエラーが発生してしまいます。
--------------------------------------------------------------------------- AttributeError Traceback (most recent call last) <ipython-input-60-b0e9d21f0b7e> in <module> 9 10 value = soup.find("div _ngcontent-client-app-c349", class_="multiple-sections ng-star-inserted") ---> 11 for rt in value.find_all("span", {'class':"component--field-formatter field-type-money ng-star-inserted title"}): 12 rt.extract() 13 print(value.get_text()) AttributeError: 'NoneType' object has no attribute 'find_all'
User-Agentの設定ミスがないかどうかについては、確認済みです。
コンソールに以下を打ち込んで取得した文字を、そのまま入力いたしました。
console.log(navigator.userAgent);
他に怪しい点はclass名などかと思いますが、入れ子構造が複雑すぎて何を入力すれば良いのかさっぱりです・・・。
最終的にはcsvファイルに落とし込めれば最高なのですが、まずは値の取得でつまづいております。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。