###質問内容
取得したデータをデータフレーム化、既存データに追加したいです。
そのためにまず取得したデータをデータフレーム化したいのですが、うまくいきません。
ご教授いただければありがたいです。
###ゴール
最終目的としてはcsv上の企業コードを読み込み、そのコードをループで検索、企業情報を抜きたいです。またcsvに自動出力されるところまで実現したいです。
###コード
繰り返し検索→取得する必要があるのでseleniumを用いています。
まだ調べきれていないのですが、pandasでデータフレーム上のコードを読み込み→seleniumで検索→取得→pandasで出力という流れをイメージしています。
本質問は取得→DF化に関する質問です。
python
1from selenium import webdriver 2from selenium.webdriver.common.keys import Keys 3import time 4import pandas as pd 5 6#read code 7 8df = pd.DataFrame({'SC': ['1401', '1431','1436'], 9 '社名': ['MBS', ' Lib_Work', 'フィット'], 10 '業種': ['建築','建築','建築']},) 11 12data = df.SC 13 14#launch the webdriver 15driver = webdriver.Chrome("C:/users/detec/chromedriver") 16TARGET_URL = "https://kabutan.jp/" 17driver.get(TARGET_URL) 18time.sleep(2) 19 20#access individual page and obtain info 21 22for code in data: 23 search_box = driver.find_element_by_id('input_id') 24 search_box.clear() 25 search_box.send_keys(code) 26 time.sleep(1) 27 search_box.submit() 28 time.sleep(1) 29 30 info_xpath = '//*[@id="kobetsu_right"]/div[4]/table/tbody/tr[3]/td' 31 url_xpath = '//*[@id="kobetsu_right"]/div[4]/table/tbody/tr[2]/td/a' 32 get_info = driver.find_element_by_xpath(info_xpath) 33 get_url = driver.find_element_by_xpath(url_xpath) 34 info = get_info.text 35 url = get_url.text 36 37#to_csv
###試したこと
for構文後にdfで新しい列を作るなど試みましたが、別DF作成後に既存DFと結合する方がわかりやすいかと思い変更いたしました。
###追記
python
1 info_df = pd.DataFrame() 2 for (info,url) in (infos,urls): 3 df['info'] = info 4 df['url'] = url
をしてみましたが、too many values to unpack (expected 2)となりました。
ちなみに
python
1df['info'] = get_info.text 2df['url'] = get_url.text
でDFに格納しようとすると
SC 社名 業種 info url
0 1401 MBS 建築 太陽光発電設備が標準の戸建販売。不動産投資、クリーンエネルギー投資事業も。
1 1431 Lib_Work 建築 太陽光発電設備が標準の戸建販売。不動産投資、クリーンエネルギー投資事業も。
2 1436 フィット 建築 太陽光発電設備が標準の戸建販売。不動産投資、クリーンエネルギー投資事業も。
0 https://www.fit-group.jp/
1 https://www.fit-group.jp/
2 https://www.fit-group.jp/
と同じ結果が三連続格納されてしまいます。
回答1件
あなたの回答
tips
プレビュー