実現したいこと・問題点など
python始めて1ヶ月足らずの超初心者です。
初めて質問で分かりにくい文章かもしれませんが
何卒、よろしくお願いいたします。
現在、dmm.ぱちタウンから試作で特定のパチンコホールの基本情報と機種情報をWEBスクレイピングしていますが、
取得データが意図した結果になっていませんでした。
どなたかご教授の程よろしくお願いいたします。
発生している問題・エラーメッセージ
①基本情報
・マップコード、遊技金額に変な改行が入っている。
・新台と店休日の間に改行が入っている。
②機種情報
・機種名は、URLリンク情報から取得しているが、URLリンクがない機種があるためそれらの機種情報も取得したい。
・親エレメントを見つけてパチンコ、スロットの区別がつくようにスクレイピングしたい。
・機種ID 機種名 台数の並びにしたい。
上記問題を解決できればと思いネット情報を検索していますが、超初心者のため躓いている状況です。
該当のソースコード
python3
ソースコード
#①基本情報
python3
import requests from bs4 import BeautifulSoup import re if __name__ == "__main__": url = 'https://p-town.dmm.com/shops/tokyo/12670' r = requests.get(url) soup = BeautifulSoup(r.text, 'lxml') selector = 'body > div.o-layout > div > div.o-container > main > div:nth-child(2) > div > table' for table in soup.select(selector + ' th, td'): if table.attrs.get('class')[0] == 'th': th_text = table.getText() elif table.attrs.get('class')[0] == 'td': if table.find('p') is not None: td_text = table.p.getText() else: td_text = table.getText() print(th_text + ':' + td_text)
#②機種情報
python3
import re import requests from bs4 import BeautifulSoup if __name__ == "__main__": url = 'https://p-town.dmm.com/shops/aomori/1639' r = requests.get(url) soup = BeautifulSoup(r.text, 'lxml') items = soup.find_all("a", href=re.compile(r"/machines/\d+"), class_='link') for item in items: number = item.parent.next_sibling.next_element print('{0:>4} {1:>4} {2}'.format(item.attrs.get('href')[10:], number.text, item.text))
試したこと
上記問題を解決できればと思いネット情報を検索していますが、超初心者のため躓いている状況です。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
コードは markdown 記法で記述してください (インデントがなくなってしまうため)
質問文のソースコードはMarkdownのコードブロックを使ってください。
とくにPythonの場合はインデントが変わると意味が変わってしまいます。
ご指摘いただきありがとうございます。
markdown記法の修正方法についてご教授いただけないでしょうか。
質問以前の対応となり申し訳ありません。
よろしくお願いいたします。
よろしくお願いいたします。
質問欄を編集して、マークダウン記法のコードの記述を参考にコード部分を```で囲む。
以下のページに説明があります。
https://qiita.com/Qiita/items/c686397e4a0f4f11683d#code---%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E6%8C%BF%E5%85%A5
mather様、tiitoi様、ご指摘いただきありがとうございました。
内容を更新いたしました。

回答1件
あなたの回答
tips
プレビュー