初歩的な質問かもしれませんが、ご教授ください。
あるサイトの更新を15秒ごとに確認し、更新があった場合に詳細情報を取得、dfに格納するプログラム(下記 test.py)をpythonで記述しました。このプログラムを無限ループして使用したいと考えています。
このプログラムを実行して、別のプログラムでdfに格納した詳細情報を参照したいのですが、どのように行えばよいでしょうか?
別のプログラムでtest.pyをimportしてみましたが、importするとtest.pyが実行されています。
下記のコードは投稿用に書き換えております、参考までに。
pythonコード
1test.py 2 3from bs4 import BeautifulSoup 4import requests 5import pandas as pd 6import time 7import os 8 9#初期設定 10data = [] 11df = pd.DataFrame(data) 12now_update = 0 13default_date = 0 14i = 0 15 16#∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞無限ループ∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞ 17while True: 18 i = i + 1 19 20 url = 'https://hoge' 21 res = requests.get(url) 22 time.sleep(15) 23 24 soup = BeautifulSoup(res.text, 'html.parser') 25 now_update = soup.find_all('a') 26 27 print(f'{i}回目のループ。',default_date == now_update) 28 29 if now_update != default_date: 30 default_date = now_update 31 32 #now_updateからURLとタイトルを取得 33 new_data1 = str(default_date[1]) 34 new_data1_split = new_data1.partition("'") 35 new_data1_split2 = new_data1_split[2].partition("'") 36 new_data1_split3 = new_data1_split2[2].partition('>') 37 new_data1_split4 = new_data1_split3[2].partition('&') 38 new_data1_url = new_data_split2[0] 39 data_1_title = new_data1_split4[0].strip(' ') 40 data_1_url = 'https://hoge' + new_data_url 41 42 #↑で取得したURLから詳細情報ページにアクセスして、data1、data2、data3、data4を抽出 43 44 data_1_res = requests.get(data_1_url) 45 data_1_soup = BeautifulSoup(data_1_res.text, 'html.parser') 46 time.sleep(1) 47 48 #詳細データを取得 49 need_data_1 = data_1_soup.find('table', attrs={'align': 'left'}) 50 need_data_1_split1 = need_data_1.find_all('td') 51 #data1を取得 52 data1 = need_data_1_split1[4].text.replace('\n', '').strip(' ') 53 #data2を取得 54 data2_lowdata = need_data_1_split1[5] 55 data2 = data2_lowdata.text.replace('\n', '').strip(' ') 56 #data3取得 57 data3_lowdata = need_data_1_split1[6].text.partition('「') 58 data3 = data3_lowdata[2].replace('\n', '').replace('」', '').strip(' ') 59 #data4取得 60 data4_lowdata = need_data_1_split1[7].text.replace('\n', '').replace('\u3000', '').replace('\r', '').strip(' ').partition('以') 61 data4 = data4_lowdata[0] 62 #testのためprint 63 print(data1, data2, data3, data4) 64 print('DFに書き込み') 65 #dataumに格納 66 dataum = {} 67 dataum['data1'] = data1 68 dataum['data2'] = data2 69 dataum['data3'] = data3 70 dataum['data4'] = data4 71 #dataにdataumをappend 72 data.append(dataum) 73 df = pd.DataFrame(data)
回答1件
あなたの回答
tips
プレビュー