スクレイピング結果をエクセルに出力したい
アメブロのランキングをカテゴリー分けして、順位とタイトルをページが無くなるまでスクレイピングしたいのですが、エクセル出力がうまくいきません。
初心者で色々と間違っているのは自覚してますがご教授ください。
options = Options()
options.add_argument('--headless')
# ChromeのWebDriverオブジェクトを作成(ヘッドレスモードの場合)
# ノーヘッドレスの場合は引数なしで実行する
browser = webdriver.Chrome(chrome_options=options)
url = "https://blogger.ameba.jp/genres/t_variety/blogs/ranking"
browser.get(url)
time.sleep(2)
def getTitle():
title = browser.find_elements_by_tag_name("h3")
rank = browser.find_elements_by_class_name("c-iconRank__rank")
#Loop
for titles, ranks in zip(title,rank):
el = ranks.text
el2 = titles.text
#print(el)
#print(el2)
#print("=====================================")
global df
df = pd.DataFrame(columns=['順位','ブログ名'])
df_add = pd.Series([[el, el2]])
df = df.append(df_add, ignore_index = True)
#print(df)
def next_page():
# 次のページに移動する
btn = browser.find_element_by_css_selector('li.c-pager__item--next > a')
btn.click()
time.sleep(1)
def last_page():
btn = browser.find_element_by_css_selector('li.c-pager__item--next > a')
if not btn:
browser.quit()
def start():
end = 2
try:
for page in range(end):
getTitle()
next_page()
last_page()
finally:
browser.quit()
# 次のページが無くなるまで
"""def start():
while True:"""
start()
df.to_excel('test.xlsx', sheet_name='new_sheet_name', index=False)