こんにちは
以下のコードで時刻をあらわす文字列(開始時間、終了時間)を抽出した時に、
1文字づつ抽出されてしまう問題を解決したいです。
ご教示頂けますでしょうか。
よろしくおねがいいたします。
▮やりたいこと
csvに出力した時の開始時間、終了時間の列を、〇〇:〇〇 のように時刻を表す形にしたい
※現状は抽出した文字列が一文字づつ縦にならんでしまっています(「▮結果」の欄参照)
▮コード
import csv
import time
import urllib.request as req
import os.path,random
import pprint
import requests
from bs4 import BeautifulSoup
import json
alfa_list=[]
blavo_list=[]
charlie1_list=[]
charlie2_list=[]
target_url_2="https://timee.co.jp/jobs/offer/ud4y3iPE4OFVIb8oOpLoMw"
r_2= requests.get(target_url_2)
soup_2= BeautifulSoup(r_2.content, "lxml")
alfa=soup_2.find_all("p",class_="style_clientName__3mE6o")
alfa_t= [x.text for x in alfa]
alfa_list.append(alfa_t)
blavo=soup_2.find_all("span",class_="style_date__2JtLJ")
blavo_t= [x.text for x in blavo]
blavo_list.append(blavo_t)
charlie1=soup_2.find_all("time")[1].text
charlie1_t=[x for x in charlie1]
charlie1_list.append(charlie1_t)
charlie2=soup_2.find_all("time")[2].text
charlie2_t=[x for x in charlie2]
charlie2_list.append(charlie2_t)
import pandas as pd
dfm = pd.DataFrame()
for i in range(len(blavo_list)):
df = pd.DataFrame([[w,x,y] for w,x,y in zip(blavo_list[i],charlie1_list[i],charlie2_list[i])])
df.insert(0, '', alfa_list[i][0])
dfm = pd.concat([dfm, df])
dfm.columns = ['店舗名','募集日','開始時間','終了時間']
dfm.to_csv('スクレイピングテスト201224.csv', encoding="utf-8", index=False)
※追記
時間に関係する部分を抽出しているcharlie1とcharlie2のコードに関して、
どのように変更したら開始時間と終了時間が正しく表記されるのか知りたくて質問を掲載しました。
(本来は一つのセルに13:00と抽出したいのに、1,3,:,0:0と別々のセルに抽出されてしまう)
”プログラムのどこが間違っているか絞り込んで”とのコメントを頂きましたが、このように表記したらわかり良いでしょうか。どうぞご検討よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー