1.はじめに
・時々google patetnsのデータから文章を抽出する必要が出てくるので、pythonクラスを作成しました。
2.コードと使い方
import requests
from bs4 import BeautifulSoup
import bs4
import re
class pat_text:
"""
google patetnsの特許文章のテキストを抽出します。
Args:
url (str): 抽出するWebページのURL。
Attributes:
url (str): 抽出したい文献のgoogle patentsでのURL。
soup (bs4.BeautifulSoup): 抽出したWebページのBeautifulSoupオブジェクト。
title (str): 抽出したWebページのタイトル。
abstract (str): 抽出したWebページの要約。
claims_list (list): 抽出したWebページの請求項のリスト。
desc_list (list): 抽出したWebページの説明のリスト。
Methods:
get_soup : beautifulsoupでsoupオブジェクトの作成
get_title: タイトルの抽出.
get_abstract : 要約文の抽出
get_claims : 請求項の抽出
get_description : 詳細な説明の抽出
"""
def __init__(self, url: str) -> None:
self.url = url
def get_soup(self) -> bs4.BeautifulSoup:
"""
WebページからHTMLを取得し、BeautifulSoupオブジェクトを返します。
Returns:
bs4.BeautifulSoup: 抽出したWebページのBeautifulSoupオブジェクト。
"""
res = requests.get(self.url)
soup = BeautifulSoup(res.content, 'html.parser')
self.soup = soup
return soup
def get_title(self) -> str:
"""
タイトルを取得し、返します。
Returns:
str: 抽出したタイトル。
"""
title = self.soup.find("meta", attrs={'name': 'DC.title'})["content"]
return title
def get_abstract(self) -> str:
"""
要約文を取得し、返します。
Returns:
str: 抽出した要約文。
"""
abstract = self.soup.find("div", {"class": "abstract"}).get_text()
return abstract
def get_claims(self) -> list:
"""
請求項のリストを取得し、返します。
Returns:
list: 抽出した請求項のリスト。
"""
claims_list = []
claims = self.soup.find_all("div", attrs={'class': re.compile('claim-text.*')})
for clm in claims:
claims_list.append(clm.get_text())
return claims_list
def get_description(self) -> list:
"""
詳細な説明のリストを取得し、返します。
Returns:
list: 詳細な説明のリスト。
"""
desc_list = []
descs = self.soup.find_all("div", attrs={'class': re.compile('description.*')})
for desc in descs:
desc_list.append(desc.get_text())
return desc_list
使用例:
url="https://patents.google.com/patent/JP2000123456A/ja"
patt = pat_text(url)
patt.get_soup()
#patt.get_title()
patt.get_abstract()
#patt.get_claims()
#patt.get_description()
出力:
(57)【要約】 【課題】 構成が簡単で小型化、軽量化が可能で、使い易く、コストの安価なディスクドライブ装置を提供する。 【解決手段】 セット状態にあるディスクを排出するディスク排出機構20と、セットされたディスクに対してヘッドHmを離接するヘッド移動機構44と、排出モード位置と再生モード位置と記録モード位置の間で変位可能なモード切換部材51を備え、そのモード切換部材51を手動で再生モード位置から記録モード位置へ変位させると、前記ヘッド移動機構44によりヘッドHmをディスクに接触させ、前記モード切換部材51を手動で記録モード位置から再生モード位置へ変位させると、前記ヘッド移動機構44によりヘッドHmをディスクから離し、前記モード切換部材51を手動で再生モード位置から排出モード位置へ変位させると、セット状態にあるディスクを前記ディスク排出機構20で排出するように構成されていることを特徴とする。