pipでインストールする部分は省きますが、
下記が初心者なりになんとか実行できたコードになります。
コード
import requests from bs4 import BeautifulSoup url = 'https://el.e-shops.jp/local/jb/6008/jn/6000523/cn/23109/' res = requests.get(url) soup = BeautifulSoup(res.text,'html.parser') import re companies = [element.text for element in soup.find_all('a',href=re.compile("^/local/nsh/"))] list_address = soup.find_all('p', attrs = {'class':'shop_address'}) shop_address = [e.text for e in soup.find_all('p',attrs = {'class':'shop_address'})] list_tel = soup.find_all('p', attrs = {'class':'shop_tel'}) shop_tel = [e.text for e in soup.find_all('p', attrs = {'class':'shop_tel'})] import pandas as pd Coulumn1 = ['社名'] df1 = pd.DataFrame(companies,columns=Coulumn1) Coulumn2 = ['住所'] df2 = pd.DataFrame(shop_address,columns=Coulumn2) Coulumn3 = ['TEL'] df3 = pd.DataFrame(shop_tel,columns=Coulumn3) df4 = df1.join(df2) df5 = df4.join(df3) df5
目的は会社名と住所とTELをもれなくExcelに落とし込むことですが、
対処のURLで熱田区の切削加工だと39件ヒットするので、
ページが2つ以上にまたがります。
個人的な考えでは、
pguiを利用した座標の取得で「加工方法(件数)」のところの件数の数字部分のテキストを読み取って、
例えば、20以上ならスクロールして、次のページボタンをクリックするところを座標で取得する。
20以下なら次の加工方法のボタンの座標を取得してクリックする。
というものです。
スクレイピング自体がサーバーに負荷をかける行為だとは理解しているので
区単位で、特に欲しい加工技術を持った会社一覧(切削加工や金属加工、鉄鋼工業など)を全てまとめて読み取って、
次の区にページを切り替えて
の繰り返しでやるという想定でいます。
もっと別の方法をご存じでしたらご教授お願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/31 02:32
2021/10/31 03:26 編集