こんにちは。
RとKerasによるディープラーニングの以下の情報を取得したいです。
- 著者
- 発行年月
- ページ数
著者とページ数は取得できたのですが、発行月の2018年10月 発行
がうまく取得できません。
この部分だけほかの2つとは書き方が違うのはわかるのですが、ではどうやれば取得できるのかがわかりません。
知恵をお貸しください(._.)
スクレイピングしたいhtml周辺
html
1<ul class="biblio"> 2 <li itemprop="author">François Chollet、J. J. Allaire 著、瀬戸山 雅人 監訳、長尾 高弘 訳</li> 3 <li> 4 <meta itemprop="datePublished" content="2018-10-12">2018年10月 発行 5 </li> 6 <li><span itemprop="numberOfPages">400</span>ページ</li> 7 <li>ISBN<span itemprop="isbn">978-4-87311-857-4</span></li> 8 <li>フォーマット Print PDF </li> 9 10 <li>原書: <a href="https://www.manning.com/books/deep-learning-with-r" target="_blank">Deep Learning with R</a></li> 11 12</ul>
現在のコード
python
1from bs4 import BeautifulSoup 2import requests 3 4def getpret(): 5 r1 = requests.get("https://www.oreilly.co.jp/books/9784873118574/") 6 r1.encoding = r1.apparent_encoding 7 8 html_doc = r1.text 9 soup = BeautifulSoup(html_doc) 10 print(soup.find(itemprop="author").text) 11 print(soup.find(itemprop="datePublished")) # .textとするとエラー 12 print(soup.find(itemprop = "numberOfPages").text) 13 14getpret()
現在の出力結果
<meta content="2018-10-12" itemprop="datePublished"/>
の部分が2018年10月 発行
となるようにしたい。
François Chollet、J. J. Allaire 著、瀬戸山 雅人 監訳、長尾 高弘 訳 <meta content="2018-10-12" itemprop="datePublished"/> 400
できましたー(≧∇≦)b
hayataka2049様のアドバイスのおかげでできましたー(>ω<)
python
1# 完成コード 2def getpret(): 3 r1 = requests.get("https://www.oreilly.co.jp/books/9784873118574/") 4 r1.encoding = r1.apparent_encoding 5 6 html_doc = r1.text 7 soup = BeautifulSoup(html_doc) 8 print(soup.find(itemprop="author").text) 9 print(soup.find(itemprop="datePublished")["content"]) 10 print(soup.find(itemprop = "numberOfPages").text) 11 12getpret()
もうひとつの候補
print(soup.find(itemprop="author").text) print(soup.find(itemprop="datePublished").parent.text) print(soup.find(itemprop = "numberOfPages").text)
ちなみに上記のコードにすると出力結果が以下のようになる(._.)
何故か出力結果に改行。。。
François Chollet、J. J. Allaire 著、瀬戸山 雅人 監訳、長尾 高弘 訳 2018年10月 発行 400
改行を消すコード
改行を消すコードをbarobaro様に教えてもらいました! ありがとうございます<3
改行を消すコード
python
1def getpret_teratail(): 2 r1 = requests.get("https://www.oreilly.co.jp/books/9784873118574/") 3 r1.encoding = r1.apparent_encoding 4 5 html_doc = r1.text 6 soup = BeautifulSoup(html_doc) 7 print(soup.find(itemprop="author").text) 8 print(soup.find(itemprop="datePublished").parent.get_text(strip=True)) 9 print(soup.find(itemprop = "numberOfPages").text) 10 11getpret_teratail()
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/19 02:27