前提・実現したいこと
pythonのライブラリを使って、webスクレイピングで、司法書士の会員名簿を作ろうとしており、リストをcsvに落とすことまではできましたが、それを上手く整形することに躓いています。
発生している問題・エラーメッセージ
実際にリストを作成することはできたのですが、下記のことを解決したいです。
①列の幅の調整や、改行文字の分割。具体的には、氏名欄の氏名とフリガナの分割、事務所所在地欄の住所と電話番号の分割。
②数ページにまたがっているものをforループを回して、全頁取得する方法。私が書いた方法だと、1ページづつ取る必要があります。
③1行目の空白行の削除。
書いたコードは、下記のコードをご確認ください。
該当のソースコード
import csv import requests import urllib.request from bs4 import BeautifulSoup import pandas as pd urls = ["http://kensaku.shiho-shoshi.or.jp/search/member.php?search_code=01&search_name=&search_address=&x=140&y=16&pageID=1"] for url in urls: html = urllib.request.urlopen(url) bsObj = BeautifulSoup(html, "html.parser") table = bsObj.findAll("table", {"id":"kojin"})[0] tables = table.findAll("tr") print(tables) with open("札幌司法書士会リスト.csv", "a", encoding='utf-8_sig',newline='') as file: writer = csv.writer(file) for row in tables: csvRow = [] for cell in row.findAll(['td', 'th']): csvRow.append(cell.get_text()) writer.writerow(csvRow) df = pd.DataFrame() pd.read_csv("札幌司法書士会リスト.csv")
補足情報
非エンジニアですが、独学でpythonを学んでいます。まったくの初心者のため、質問の内容も的を射てないところもありますが、
何卒ご指導のほどよろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー