前提・実現したいこと
Python3でSRUファイルをWebスクレイピングで解析し、それをXMLファイルとして出力するという研究を行なっています。
ここに質問の内容を詳しく書いてください。
文字列のみの文章はうまく出力されるのですが、数値が含まれている文章が出力されないため原因を知りたいです。また、現在のままだとターミナル上に出力するだけのプログラムのためXMLファイルとして出力する方法がわかりません。
発生している問題・エラーメッセージ
Traceback (most recent call last):
File "**/testt.py", line 28, in <module>
lat = rsoup.find('dcterms:spatial').find('geo:lat').text
AttributeError: 'NoneType' object has no attribute 'text'
該当のソースコード
Python3 ソースコードimport requests from bs4 import BeautifulSoup base = r'https://kn.ndl.go.jp/api/sru' #operation=searchRetrieve&version=1.2&startRecord=1&maximumRecords=200&recordPacking=xml&recordSchema=ndlkn&query=mediatype=3%20and%20identifier%20=R200200030*' payload = { 'operation': 'searchRetrieve' ,'maximumRecords': '200' ,'searchRetrieve&version': '1.2' ,'startRecord': '1' ,'recordPacking': 'string' ,'recordSchema': 'ndlkn' ,'query': 'mediatype=3 and identifier=R200200049*' } r = requests.get(base, params=payload) soup = BeautifulSoup(r.text, 'lxml') titles = {} i=0 for s in soup.records.find_all('recorddata'): rsoup = BeautifulSoup(s.text, "lxml") title = rsoup.find('dc:title').find('rdf:description').find('rdf:value').text lat = rsoup.find('dcterms:spatial').find('geo:lat').text lon = rsoup.find('dcterms:spatial').find('geo:long').text jpg = rsoup.find('foaf:thumbnail').text print(title) print(lat) print(lon) print(jpg) i= i+1 print(i)
試したこと
.textに問題があるのかと思い.stringで試してみましたがうまくいきません。
ここにより詳細な情報を記載してください。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。