📝

7. 크롤링 데이터 파일 생성 후 나에게 push하기

 
import csv import json data = l #파일을 한 번 쓴다. with open('data.js', "w", encoding="UTF-8-sig") as f_write: json.dump(l, f_write, ensure_ascii=False, indent=4) #파일을 다시 읽는다. data = "" with open('data.js', "r", encoding="UTF-8-sig") as f: line = f.readline() while line: data += line line = f.readline() #파일에 변수명을 추가하여 다시 쓴다. final_data = f"var data = {data};" with open('data.js', "w", encoding="UTF-8-sig") as f_write: f_write.write(final_data)
 
전에 사용했던 전체 코드로 합치기
import requests from bs4 import BeautifulSoup import csv import json response = requests.get("http://paullab.synology.me/stock.html") response.encoding = 'utf-8' html = response.text soup = BeautifulSoup(html, 'html.parser') oneStep = soup.select('.main')[2] twoStep = oneStep.select('tbody > tr')[1:] 날짜 = [] 종가 = [] 전일비 = [] 거래량 = [] for i in twoStep: 날짜.append(i.select('td')[0].text) 종가.append(int(i.select('td')[1].text.replace(',', ''))) 전일비.append(int(i.select('td')[2].text.replace(',', ''))) 거래량.append(int(i.select('td')[6].text.replace(',', ''))) l = [] for i in range(len(날짜)): l.append({ '날짜':날짜[i], '종가':종가[i], '전일비':전일비[i], '거래량':거래량[i], }) #파일을 한 번 쓴다. with open('data.js', "w", encoding="UTF-8-sig") as f_write: json.dump(l, f_write, ensure_ascii=False, indent=4) #파일을 다시 읽는다. data = "" with open('data.js', "r", encoding="UTF-8-sig") as f: line = f.readline() while line: data += line line = f.readline() #파일에 변수명을 추가하여 다시 쓴다. final_data = f"var data = {data};" with open('data.js', "w", encoding="UTF-8-sig") as f_write: f_write.write(final_data)
 
main.yml 데이터를 수정합니다. 해당 yml 코드는 아래 코드에 의존하고 있습니다.
 
스케줄러는 push로 바꾸겠습니다. push로 해야 기다리지 않고 actions를 사용할 수 있기 때문입니다.
name: helloGithubAction on: [push] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 with: # 개인 토큰을 사용할 것인지 말 것인지 persist-credentials: false - name: 1. pip 업그래이드 run: python -m pip install --upgrade pip - name: 2. 환경 설정 run: pip install -r requirements.txt - name: 3. 파이썬 실행 run: python test.py - name: Commit files run: | git config --local user.email "paullabkorea@gmail.com" git config --local user.name "paullabkorea" git add . git commit -m "Run crawler and update current data" - name: Push changes uses: ad-m/github-push-action@master with: # branch: "master" github_token: ${{ secrets.GITHUB_TOKEN }}