郵便番号・住所を抜き出し、表にまとめたいと思っています。該当のhtmlが以下のものです。うまく郵便番号と住所だけ抜き出す方法と、表にまとめる方法を知りたいです。
長くて申し訳ないです。ちなみにこの住所は自分の好きな焼き肉屋なので他意はないです。
<th style="width: 28%;">住所</th> <td>〒206-0032<br />東京都多摩市南野2-31-7</td> </tr> <tr> <th>TEL</th> <td>042-316-9566</td> </tr> <tr> <th>定休日</th> <td>年中無休</td> </tr> <tr> <th>営業時間</th> <td> <p>【月曜日~木曜日】<br />17:00~22:30(L.O.22:00)<br />【金曜日】<br />17:00~23:00(L.O.22:30)<br />【土曜日】<br />16:30~23:00(L.O.22:30)<br />【日曜日・祝日】<br />16:30~22:30(L.O.22:00)</p> <p><span style="color: #ff0000;">※ご利用時間2時間(L.O30分前)</span></p> </td> </tr> <tr> <th>駐車場</th> <td>有り(36台)</td> </tr> <tr> <th>アクセス</th> <td>小田急多摩線 唐木田駅から車で10分<span class="pc-only"><br /></span></td> </tr> <tr> <th>クレジットカード</th> <td>利用可能(VISA・MasterCard)</td> </tr> <tr> <th>予約</th> <td>【月曜日~金曜日】終日<br />※土曜日・日曜日や祝日はご予約をお受けできません。また予約定数に達した場合、ご予約をお受け致しかねる場合がございます。</td> </tr> </tbody> </table> <div class="box"><iframe width="100%" height="300px" style="border: 0;" src="https://www.google.com/maps/embed?pb=!1m14!1m8!1m3!1d1621.8938443319612!2d139.4262704!3d35.6083034!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x6018fcbf478fffff%3A0x95c222aed02db60c!2z5ZGz44KT5ZGz44KTIOWkmuaRqeWNl-mHjuW6lw!5e0!3m2!1sja!2sjp!4v1544402052411" frameborder="0" allowfullscreen="allowfullscreen"></iframe></div> <table border="0" cellpadding="5" data-epark="shop_id:173032" style="width: 100%; height: 60px; margin: 0 auto; background-color: #f0f0f0; font-size: 14px;"> <tbody> <tr> <td valign="middle" width="15%"><span style="color: red;"> <img src="https://epark.jp/images/portal_pc/api/clock.png" /> </span></td> <td align="center" data-epark="message_block" style="background-color: #f0f0f0;" valign="middle" width="40%"><strong>ただいまの待ち<br /><span data-epark="waiting_info_block" data-epark-num-color="red"> <span style="color: red;">1</span>組</span></strong></td> <td><span class="more box3"> <a class="add_arrow" href="https://epark.jp/detail/wait/173032?widgetimp=1" target="_blank" rel="noopener noreferrer">順番待ちサイト</a> </span></td> </tr> </tbody> </table> <script src="https://epark.jp/js/api/epark_site_shop_tag.js" charset="utf-8" onload="EparkSiteTag.onLoaded(this)" onreadystatechange="if(typeof EparkSiteTag != 'undefined'){EparkSiteTag.onLoadedIE(this)}">
これに対して以下のソースコードを使っています。
python
1from bs4 import BeautifulSoup 2import urllib.error,os 3import urllib.request 4import time,datetime 5import pandas as pd 6import numpy as np 7 8shop_list = ['01','02','03','04','05','06','07','08','09','10','11','12','13','14','15','16','17','18','19','20','21','22'] 9 10url_list = ['https://www.y-minmin.com/shop#a{0}'.format(shop) for shop in shop_list] 11 12print(len(url_list)) 13for url in url_list: 14 print(url) 15 16 17ua = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100' 18 19req = urllib.request.Request(url_list[0], headers={'User-Agent':ua}) 20html = urllib.request.urlopen(req) 21 22soup = BeautifulSoup(html,("html.parser")) 23 24 25address_list = soup.find_all(['td','br','th']) 26 27for k,v in enumerate(address_list): 28 print(v.get_text().replace(" ","")) 29 30 31post_address = [] 32other = [] 33 34for k,v in enumerate(address_list): 35 36 if k % 2 == 0: 37 post_address.append(v.get_text().replace(" ","")) 38 else: 39 other.append(v.get_text().replace(" ","")) 40 41df = pd.DataFrame({'住所':post_address,'その他':other}) 42
するとこのように返ってきます。
C:\test2>python sub0322.py 22 https://www.y-minmin.com/shop#a01 https://www.y-minmin.com/shop#a02 https://www.y-minmin.com/shop#a03 https://www.y-minmin.com/shop#a04 https://www.y-minmin.com/shop#a05 https://www.y-minmin.com/shop#a06 https://www.y-minmin.com/shop#a07 https://www.y-minmin.com/shop#a08 https://www.y-minmin.com/shop#a09 https://www.y-minmin.com/shop#a10 https://www.y-minmin.com/shop#a11 https://www.y-minmin.com/shop#a12 https://www.y-minmin.com/shop#a13 https://www.y-minmin.com/shop#a14 https://www.y-minmin.com/shop#a15 https://www.y-minmin.com/shop#a16 https://www.y-minmin.com/shop#a17 https://www.y-minmin.com/shop#a18 https://www.y-minmin.com/shop#a19 https://www.y-minmin.com/shop#a20 https://www.y-minmin.com/shop#a21 https://www.y-minmin.com/shop#a22 住所 〒206-0032東京都多摩市南野2-31-7 TEL 042-316-9566 定休日 年中無休 営業時間 【月曜日~木曜日】17:00~22:30(L.O.22:00)【金曜日】17:00~23:00(L.O.22:30)【土曜日】16:30~23:00(L.O.22:30)【日曜日・祝日】16:30~22:30(L.O.22:00) ※ご利用時間2時間(L.O30分前) 駐車場 有り(36台) アクセス 小田急多摩線 唐木田駅から車で10分 クレジットカード 利用可能(VISA・MasterCard) 予約 【月曜日~金曜日】終日※土曜日・日曜日や祝日はご予約をお受けできません。また予約定数に達した場合、ご予約をお受け致し かねる場合がございます。 ただいまの待ち1組 順番待ちサイト
ここまで読んでいただいてありがとうございます。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/03/29 15:19
2021/03/29 15:43
2021/03/30 03:18
2021/03/30 11:54