特定サイト(iタウンページ)の検索結果をスクレイピングで収集したいです
「指定したページ」の結果を全て収集できるようにしたいのですが、本コードをどのように変更することで成せましょうでしょうか?
python3
1import time 2import csv 3import re 4import requests 5import bs4 6 7# 5ページ分だけ取得して、配列に保持する。 8base_url = 'https://itp.ne.jp/genre_dir/syaken/pg/{page_no}/' 9urls = [base_url.format(page_no=i) for i in range(100)] 10print(urls) 11 12# 配列を一個づつ回して、htmlを解析して、メールアドレスだけ取得 13addrs = [] 14for url in urls: 15 print('fetching... ' + url) 16 res = requests.get(url) 17 soup = bs4.BeautifulSoup(res.text, 'html.parser') 18 for a_tag in soup.find_all('a', class_='boxedLink emailLink'): 19 match = re.search(r'[\w.-]+@[\w.-]+', a_tag['onclick']) 20 addrs.append([match.group(0)]) 21 22 time.sleep(1) # アクセス間隔 23print(addrs) 24 25with open('test.csv', 'w', encoding='utf8') as f: 26 writer = csv.writer(f) 27 writer.writerows(addrs)
「指定したページ」の結果とは具体的にはどのような情報がほしいのでしょうか?現状のコードの問題点も追記してください。
あとタイトルに入っている Google はこの件では関係ありませんよね。
titoisさん、いつもありがとうございます。googleは間違いです、すみません。https://itp.ne.jp/genre_dir/syaken/?ngr=1&sr=1 この検索結果にある事業者のアドレスをスクレイピングしていて、この検索結果のページを「1から50ページまで」「20から50ページまで」というように任意に指定したく考えています
回答1件
あなたの回答
tips
プレビュー