Job概要
ある業界団体の特定ページにある
・会社名
・代表者名
・webページリンク
・住所
・電話番号
の情報を収集し、csvファイルにするpython3のコードを加筆修正し納品頂きたいです

以下のコードを使いトライしましたが
おそらくHTMLクラスの設定のところでつまずいてしまったのでご依頼です


import time
import csv
import re
import requests
import bs4

# 取得ページ分だけURLを生成して、配列に保持する。
begin = 1 # 取得開始ページ
end = 1 # 取得終了ページ
base_url = '特定のwebページURL'
urls = [base_url.format(page_no=i) for i in range(begin, end)]
print(urls)

# 配列を一個づつ回して、htmlを解析して、メールアドレスだけ取得
info = []
for url in urls:
print('fetching... ' + url)
res = requests.get(url)
soup = bs4.BeautifulSoup(res.text, 'html.parser')

selctions = soup.select('section')
sections = soup.find_all('section', attrs={'class': None})
for section in sections:
name = section.h4.a.string # 事業所名
link = section.h4.a['href'] # URL
p_tags = section.find_all('p')
if p_tags[0].string: # 説明は存在しない場合がある
desc = p_tags[0].string.strip().replace('\u3000', '') # 説明
else:
desc = None
addr = p_tags[1].span.next_sibling.strip()
postal_code = addr.split('\u3000')[0] # 郵便番号
addr = addr.split('\u3000')[1] # 住所
tel = p_tags[2].b.string # 電話番号
mail = p_tags[3].find('a', class_='boxedLink emailLink') # メールアドレス
if mail: # メールアドレスは掲載していない場合がある
match = re.search(r'[\w\.-]+@[\w\.-]+', mail['onclick'])
mail = match.group(0)
info.append({'name': name, 'description': desc, 'postal_code': postal_code,
'address': addr, 'tel': tel, 'mail': mail})
# from pprint import pprint
# pprint(info)

time.sleep(1) # アクセス間隔

with open('result.csv', 'w', encoding='utf8') as f:
writer = csv.DictWriter(f, fieldnames=info[0].keys())
writer.writerows(info)

詳細情報
JobID クライアント名
38042 nori_pub
募集期間 住所による制限
2019/02/15 16:55 〜 2019/02/18 00:00 なし
信用情報による制限 指定スキル
  • なし
リスティング、サイト解析

報酬 
2,500 円
残り時間
Icon_state_entry_finish
類似Job
Page_top