Python初心者ですみません。あるウェブサイトから、情報を一気に取得したいのですが、ウェブページに多彩なメニューがあり、これら全てを一気に取得する方法などあるでしょうか。
スクレイピングの基本だと思うのですが、ご支援いただけますと幸いです。
ウェブページは以下のものです。
以前に試した方法として、以下のようなものをテンプレートにしているのですが、エラーは起きないのですが、うまく取得できません。
Python3
1 2#保存用 3 4driver_path = r'C:\Anaconda3\chromedriver.exe'#自分のChoromedriverの場所 5 6#読み込みたいフォルダの場所 7URL = 'https://nintei.nurse.or.jp/certification/General/(X(1)S(efl0y555pect3x45oxjzfw3x))/GCPP01LS/GCPP01LS.aspx' 8 9#格納したいフォルダの場所 10send_path = r'C:\Users\akira\Documents\Python\会社' 11 12 13 14from selenium import webdriver 15import time 16import bs4 17import re 18import os 19import time 20import shutil 21from selenium.webdriver.support.ui import WebDriverWait 22from selenium.webdriver.support import expected_conditions as EC 23from selenium.webdriver.common.by import By 24 25start = time.time() 26 27 28driver = webdriver.Chrome(driver_path) 29driver.get(URL) 30time.sleep(3) 31 32soup = bs4.BeautifulSoup(driver.page_source, 'html5lib') 33 34base = 'https://nintei.nurse.or.jp/certification/General/' 35 36soup_file1 = soup.find_all('a') 37href_list = [] 38 39file_num = 1 40sum_file = 1 41 42cc = 0 43for s in soup_file1: 44 if s.string=='検索': 45 path = base+s.get('href') 46 href_list.append(path) 47 48 print(path) 49 driver.get(path) 50 51 WebDriverWait(driver, 300).until(EC.element_to_be_clickable((By.XPATH,'//*[@id="ctl00_plhContent_btnSearchMain"]'))) 52 driver.find_element_by_xpath('//*[@id="ctl00_plhContent_btnSearchMain"]').click() 53 54 while sum_file == file_num : 55 sum_file = len(os.listdir(r'C:\Users\akira\Downloads')) 56 57 else: 58 print("現在のダウンロードファイル数_{}枚".format(sum_file-1)) 59 file_num += 1 60 61 cc += 1 62 63 64#一時ファイルが邪魔をする場合があるので時間を少し開ける 65time.sleep(60) 66 67 68#ファイルの移動 69 70 71dw_path = r'C:\Users\akira\Documents\Python\会社' 72dw_list = os.listdir(dw_path) 73 74dw_xlsx = [f for f in dw_list] 75for dw in dw_xlsx: 76 shutil.move(r'C:\Users\akira\Documents\Python\会社')
具体的には、どのようなことをするプログラムなのでしょうか。
詳しく書いていただけると、助かります。
ご連絡がおそくなってしまいすみません。当初は、一括で看護師やその関係者を一括でダウンロードするようなプログラムを考えていたのですが、どうも一括でダウンロードするのは難しそうだという感触を得ていて、そうであればある程度分割してでも、このページの情報を全てエクセルなどにダウンロードする方法はないかと検討している次第です。当方、pandasなどは勉強しているのですがスクレイピングの知識が圧倒的に欠落していて、どのように手をつければよいのか困り果てているところです。
ご協力いただけますと幸いです。
ページの情報すべてというのは、認定看護師の資格を持つ方のリストを、条件指定をせずにすべて取得する、ということでしょうか?
ご連絡ありがとうございます。当初言われたのは、認定看護師、認定看護管理者、専門看護師全てということだったのですが、かなり難しそうなので、認定看護師全てにさせていただければと思います。それが、わかれば、認定看護管理者と専門看護師全ても応用でできるのではないかと思います。
重ねて、ご協力いただけますと幸いです。
回答2件
あなたの回答
tips
プレビュー