前提・実現したいこと
jupyter notebookを使ってスクレイピングを試みています。
*初心者です。
取得したい情報は、
<tr> <td class="cell_white" valign="top" width="400"><p>(東京、一般標準タイプ、需要家渡し、1kg、90~150日手形)<br/><br/>高密度PE(粒状、一般フィルム用) 212-232円<br/>低密度PE(〃、〃) 222-252円<br/> 〃 (〃、その他用) 232-252円<br/>PP (〃、雑貨向け) 222-262円<br/>GPPS (〃、〃) 197-213円<br/>HIPS (〃、〃) 267-287円<br/>ABS (〃、成型用) 300-340円<br/>PA6 (〃、〃) 330-380円<br/>PA66 (〃、〃) 450-500円<br/>POM (〃、〃) 290-320円<br/>PC (〃、〃) 400-440円<br/>変性PPE 470-520円<br/>PBT (〃、〃) 380-430円<br/><br/>※上記内容についてのお問合せにはお応えできませんので<br/> 悪しからずご了承ください。<br/><br/>2020年1月9日(木)日本経済新聞より</p></td> <td class="cell_white" width="200"><p></p></td> </tr> のうちの数値の部分(222-262など)です。どのようにすれば、<br>内のテキストのみを取得できるでしょうか。
まったくの初心者ですので、お手柔らかにお願いします。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
import urllib.request
from bs4 import BeautifulSoup
import re
url = "http://www.daikenkasei.com/news/aydiary.php"
f = urllib.request.urlopen(url, timeout=1)
html = f.read().decode('utf-8')
soup = BeautifulSoup(html, "html.parser")
試したこと
def filter_br_pe(tag):
if tag.name == 'br' and tag.text == 'PP':
return True
return False
soup = BeautifulSoup(html, 'html.parser')
print(soup.find(filter_br_pe))
いくつかウェブを参考にトライしてみましたが、うまくいきませんでした。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー