공개 번호 앵그리 잇 맨, 슈퍼 파이썬 크롤러 예제 소스 코드를 팔로우하는 것을 환영합니다.
I. 크롤링 대상
둘째, 전체 소스 코드
#""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
#
# Copyright (c) 2024 앵그리 잇 맨, All Rights Reserved.
# FileName : code.py
# Date :
# Author : 앵그리 잇 맨
# Version : 1.0.0
# Node : 앵그리 잇 맨
#
#""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
import csv
import requests
import pandas as pd
import json
import jsonpath
from lxml import etree
from datetime import datetime, timedelta
from prettytable import PrettyTable
def getRecordData(recordUrl, headers):
response = requests.get(url=recordUrl, headers=headers)
html = etree.HTML(response.text)
item1List = html.xpath("//p[@class='analysis-list-item']/span[@class='item1']/text()")
item2List = html.xpath("//p[@class='analysis-list-item']/span[@class='item2']/text()")
item3List = html.xpath("//p[@class='analysis-list-item']/span[@class='item3']/text()")
item4List = html.xpath("//p[@class='analysis-list-item']/span[@class='item4']/text()")
item5List = html.xpath("//p[@class='analysis-list-item']/span[@class='item5']/text()")
if(item1List==[]):
return 0, ''
df = pd.DataFrame([item1List, item2List, item3List, item4List, item5List]).T
df[5] = df[0] + ' ' + df[1] + ' ' + df[2] + ' ' +df[3] + ' ' + df[4]
recordNum = df[5].index.size
recordData = df[5].str.cat(sep='
')
return recordNum, recordData
def getCourseData(courseUrl, headers):
response = requests.get(url=courseUrl, headers=headers)
dataList = json.loads(response.text)
matchIdList = jsonpath.jsonpath(dataList, "$.content.matches..match_id")
dateUtcList = jsonpath.jsonpath(dataList, "$.content.matches..date_utc")
timeUtcList = jsonpath.jsonpath(dataList, "$.content.matches..time_utc")
teamANameList = jsonpath.jsonpath(dataList, "$.content.matches..team_A_name")
teamBNameList = jsonpath.jsonpath(dataList, "$.content.matches..team_B_name")
recordNumList = []
recordDataList = []
for matchId in matchIdList:
recordUrl = 'https://..com/liveDetail/{}'.format(matchId)
recordNum, recordData = getRecordData(recordUrl, headers)
recordNumList.append(recordNum)
recordDataList.append(recordData)
courseData = pd.DataFrame([dateUtcList, timeUtcList, teamANameList, teamBNameList, recordNumList, recordDataList]).T
return courseData
def checkData(courseData):
def checkDate(row):
dateTime = datetime.strptime(row, "%Y-%m-%d %H:%M:%S") + timedelta(hours=8)
date = dateTime.date()
return date
def checkTime(row):
dateTime = datetime.strptime(row, "%Y-%m-%d %H:%M:%S") + timedelta(hours=8)
time = dateTime.time()
return time
courseData[0] = courseData[0]+' '+courseData[1]
courseData[1] = courseData[0]
courseData[0] = courseData[0].apply(checkDate)
courseData[1] = courseData[1].apply(checkTime)
courseData = courseData.values.tolist()
return courseData
def printData(result):
table = PrettyTable()
table.field_names = [""경기 날짜", "경기 시간", "홈 팀", "원정 팀", "경기 횟수", "맞대결 기록"]
table.add_rows(result)
print(table)
def saveData(result):
with open(' .csv', 'w', newline='') as file:
writer = csv.writer(file)
writer.writerows(result)
def main():
result = []
baseUrl = 'https://..com/sport-data/soccer/biz/data/schedule?season_id=14593&round_id=69985&gameweek={}&app=dqd&platform=web&version=0'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.110 Safari/537.3'}
for page in range(1,4):
courseUrl = baseUrl.format(page)
courseData = getCourseData(courseUrl, headers)
data = checkData(courseData)
result = result + data
printData(result)
saveData(result)
if __name__== "__main__" :
main()
크롤링 결과
+------------+----------+--------------+--------------+----------+-----------------------------------------------+
| 대회 날짜| 대회 시간| | | 참여 횟수| 이전 전쟁 결과|
+------------+----------+--------------+--------------+----------+-----------------------------------------------+
| 2024-01-17 | 01:30:00 | 사우디 아라비아| | 10 | 2023-01-12 걸프컵 사우디아라비아 1-2 오만|
| | | | | | 2022-01-28 아시아 예선 사우디아라비아 1-0 오만|
| | | | | | 2021-09-08 아시아 예선 오만 0-1 사우디아라비아|
| | | | | | 2019-12-03 걸프컵 오만 1-3 사우디아라비아|
| | | | | | 2017-12-28 걸프컵 사우디아라비아 0-2 오만|
| | | | | | 2011-11-16 아시아 예선 사우디아라비아 0-0 오만|
| | | | | | 2011-09-02 아시아 예선 오만 0-0 사우디아라비아|
| | | | | | 2009-08-13 친선 오만 2-1 사우디아라비아|
| | | | | | 2009-01-17 걸프컵 오만 0-0 사우디아라비아|
| | | | | | 2007-07-01 친선 오만 1-1 사우디아라비아|
| 2024-01-16 | 22:30:00 | | 키르기스스탄| 1 | 2006-12-02 아시안게임 남자 축구 키르기스스탄 0-2 태국|
| 2024-01-16 | 01:30:00 | 말레이시아| | 3 | 2021-10-06 요르단 4-0 말레이시아 친선 경기|
| | | | | | 2019-08-30 친선 말레이시아 0-1 요르단|
| | | | | | 2009-09-05 친선 요르단 0-0 말레이시아|
| 2024-01-15 | 22:30:00 | 인도네시아| 이라크| 4 | 2023-11-16 아시아 예선 이라크 5-1 인도네시아|
| | | | | | 2013-11-19 아시아 챔피언십 인도네시아 0-2 이라크|
| | | | | | 2013-02-06 아시아 챔피언십 이라크 1-0 인도네시아|
| | | | | | 2006-11-18 아시안게임 남자 축구 인도네시아 0-6 이라크|
| 2024-01-15 | 19:30:00 | | | 5 | 2019-01-22 아시안컵 대한민국 1-1 바레인|
| | | | | | 2011-01-11 아시안컵 대한민국 2-1 바레인|
| | | | | | 2009-02-04 친선 바레인 2-2 대한민국|
| | | | | | 2007-07-15 아시안컵 바레인 2-1 대한민국|
| | | | | | 2006-12-05 아시안게임 남자 축구 대한민국 1-0 바레인|
| 2024-01-15 | 01:30:00 | | 팔레스타인| 3 | 2018-12-24 팔레스타인 1-1 이란 친선 경기|
| | | | | | 2011-10-06 친선 경기 이란 7-0 팔레스타인|
| | | | | | 2007-06-20 친선 경기 이란 2-0 팔레스타인|
| 2024-01-14 | 22:30:00 | 아랍에미리트| 일본 홍콩| 2 | 2013-11-15 아시아 챔피언십 UAE 4-0 일본 홍콩|
| | | | | | 2013-10-15 아시아 챔피언십 일본 홍콩 0-4 UAE|
| 2024-01-14 | 19:30:00 | | | 5 | 2022-03-29 아시아 예선 일본 1-1 베트남|
| | | | | | 2021-11-11 아시아 예선 베트남 0-1 일본|
| | | | | | 2019-01-24 아시안컵 베트남 0-1 일본|
| | | | | | 2011-10-07 친선 경기 일본 1-0 베트남|
| | | | | | 2007-07-16 아시안컵 베트남 1-4 일본|
| 2024-01-14 | 01:30:00 | 우즈베키스탄| Syria| 5 | 2020-11-13 우호 우즈베키스탄 0-1 시리아|
| | | | | | 2019-06-11 우호 우즈베키스탄 2-0 시리아|
| | | | | | 2018-09-06 우호 우즈베키스탄 1-1 시리아|
| | | | | | 2017-03-23 아시아 예선 시리아 1-0 우즈베키스탄|
| | | | | | 2016-09-01 아시아 예선 우즈베키스탄 1-0 시리아|
| 2024-01-13 | 22:30:00 | | 타지키스탄| 1 | 2019-06-11 친선 경기 일본 1-0 타지키스탄|
| 2024-01-13 | 19:30:00 | 호주| | 1 | 2011-01-10 아시안컵 인도 0-4 호주|
| 2024-01-13 | 00:00:00 | Qatar| 레바논| 0 | |
| 2024-01-22 | 01:30:00 | 키르기스스탄| 사우디 아라비아| 0 | |
| 2024-01-21 | 22:30:00 | | | 8 | 2021-05-25 친선 태국 0-1 오만|
| | | | | | 2019-01-02 우호적인 태국 0-2 오만|
| | | | | | 2012-02-29 아시아 예선 오만 2-0 태국|
| | | | | | 2011-09-06 아시아 예선 태국 3-0 오만|
| | | | | | 2008-06-22 아시아 예선 오만 2-1 태국|
| | | | | | 2008-03-26 아시아 예선 태국 0-1 오만|
| | | | | | 2007-07-12 아시안컵 오만 0-2 태국|
| | | | | | 2004-07-28 아시안컵 오만 2-0 태국|
| 2024-01-20 | 22:30:00 | | 말레이시아| 8 | 2022-06-11 아시안컵 말레이시아 1-2 바레인|
| | | | | | 2021-05-29 우호적인 바레인 2-0 말레이시아|
| | | | | | 2013-11-15 아시아 챔피언십 바레인 1-0 말레이시아|
| | | | | | 2013-10-15 말레이시아 1-1 바레인|
| | | | | | 2007-10-28 아시아 예선 말레이시아 0-0 바레인|
| | | | | | 2007-10-21 아시아 예선 바레인 4-1 말레이시아|
| | | | | | 2003-10-22 아시아 챔피언십 바레인 3-1 말레이시아|
| | | | | | 2003-10-12 말레이시아 2-2 바레인|
| 2024-01-20 | 19:30:00 | | | 5 | 2014-11-14 친선 요르단 0-1 대한민국|
| | | | | | 2008-09-05 친선 한국 1-0 요르단|
| | | | | | 2008-06-07 아시아 예선 요르단 0-1 대한민국|
| | | | | | 2008-05-31 아시아 예선 한국 2-2 요르단|
| | | | | | 2004-07-19 아시안컵 대한민국 0-0 요르단|
| 2024-01-20 | 01:30:00 | 일본 홍콩| | 4 | 2023-11-16 아시아 예선 이란 4-0 일본 홍콩|
| | | | | | 2021-06-03 아시아 예선 이란 3-1 일본 홍콩|
| | | | | | 2019-09-10 아시아 예선 일본 홍콩 0-2 이란|
| | | | | | 2006-12-03 아시안게임 남자 축구 일본 홍콩 1-2 이란|
| 2024-01-19 | 22:30:00 | | 인도네시아| 13 | 2023-01-09 동남아시아 챔피언십 베트남 2-0 인도네시아|
| | | | | | 2023-01-06 동남아시아 챔피언십 인도네시아 0-0 베트남|
| | | | | | 2021-12-15 동남아시아 챔피언십 인도네시아 0-0 베트남|
| | | | | | 2021-06-08 아시아 예선 베트남 4-0 인도네시아|
| | | | | | 2019-10-15 아시아 예선 인도네시아 1-3 베트남|
| | | | | | 2016-12-07 동남아시아 챔피언십 베트남 2-1 인도네시아|
| | | | | | 2016-12-03 동남아시아 챔피언십 인도네시아 2-1 베트남|
| | | | | | 2016-11-08 우호 베트남 3-2 인도네시아|
| | | | | | 2016-10-09 친선 인도네시아 2-2 베트남|
| | | | | | 2014-11-22 동남아시아 챔피언십 베트남 2-2 인도네시아|
| | | | | | 2012-10-16 우호 베트남 0-0 인도네시아|
| | | | | | 2012-09-15 친선 인도네시아 0-0 베트남|
| | | | | | 2008-01-15 친선 베트남 1-1 인도네시아|
| 2024-01-19 | 19:30:00 | 이라크| | 6 | 2017-06-13 아시아 예선 이라크 1-1 일본|
| | | | | | 2016-10-06 아시아 예선 일본 2-1 이라크|
| | | | | | 2015-06-11 우방 일본 4-0 이라크|
| | | | | | 2015-01-16 아시안컵 이라크 0-1 일본|
| | | | | | 2013-06-11 아시아 예선 이라크 0-1 일본|
| | | | | | 2012-09-11 아시아 예선 일본 1-0 이라크|
| 2024-01-19 | 01:30:00 | 팔레스타인| 아랍에미리트| 4 | 2016-03-24 아시아 예선 UAE 2-0 팔레스타인|
| | | | | | 2015-09-08 아시아 예선 팔레스타인 0-0 UAE|
| | | | | | 2012-02-24 아랍에미리트 3-0 팔레스타인 친선 경기|
| | | | | | 2009-10-10 친선 아랍에미리트 1-1 팔레스타인|
| 2024-01-18 | 22:30:00 | | 우즈베키스탄| 2 | 2001-06-26 친선 인도 1-2 우즈베키스탄|
| | | | | | 1997-04-04 우호적인 인도 2-2 우즈베키스탄|
| 2024-01-18 | 19:30:00 | Syria| 호주| 3 | 2019-01-15 아시안컵 호주 3-2 시리아|
| | | | | | 2017-10-10 아시아 예선 호주 1-1 시리아|
| | | | | | 2017-10-05 아시아 예선 시리아 1-1 호주|
| 2024-01-17 | 22:30:00 | 타지키스탄| Qatar| 2 | 2012-09-07 친선 카타르 1-2 타지키스탄|
| | | | | | 2006-02-14 친선 카타르 2-0 타지키스탄|
| 2024-01-17 | 19:30:00 | 레바논| | 3 | 2009-11-22 일본 1-0 레바논|
| | | | | | 2009-11-14 아시아 챔피언십 레바논 0-2 일본|
| | | | | | 2008-01-20 친선 일본 0-0 레바논|
| 2024-01-25 | 23:00:00 | 키르기스스탄| | 2 | 2023-11-21 아시아 예선 키르기스스탄 1-0 오만|
| | | | | | 2023-06-20 중앙아시아컵 키르기스스탄 0-1 오만|
| 2024-01-25 | 23:00:00 | 사우디 아라비아| | 8 | 2017-03-23 아시아 예선 태국 0-3 사우디아라비아|
| | | | | | 2016-09-02 아시아 예선 사우디아라비아 1-0 태국|
| | | | | | 2011-11-12 아시아 예선 사우디아라비아 3-0 태국|
| | | | | | 2011-10-11 아시아 예선 태국 0-0 사우디아라비아|
| | | | | | 2009-02-05 친선 경기 사우디아라비아 2-1 태국|
| | | | | | 2008-11-08 친선 경기 사우디아라비아 1-0 태국|
| | | | | | 2001-10-22 아시아 예선 사우디아라비아 4-1 태국|
| | | | | | 2001-09-15 아시아 예선 태국 1-3 사우디아라비아|
| 2024-01-25 | 19:30:00 | | 말레이시아| 0 | |
| 2024-01-25 | 19:30:00 | | | 12 | 2021-09-08 친선 바레인 1-2 요르단|
| | | | | | 2021-03-31 친선 바레인 1-2 요르단|
| | | | | | 2019-08-05 서아시아 챔피언십 요르단 0-1 바레인|
| | | | | | 2017-08-30 친선 바레인 0-0 요르단|
| | | | | | 2016-09-04 친선 바레인 0-0 요르단|
| | | | | | 2015-01-04 친선 바레인 1-0 요르단|
| | | | | | 2014-01-05 서아시아 챔피언십 바레인 0-1 요르단|
| | | | | | 2012-11-08 친선 바레인 3-0 요르단|
| | | | | | 2011-12-23 팬-아랍 게임 바레인 1-0 요르단|
| | | | | | 2010-12-28 친선 요르단 1-2 바레인|
| | | | | | 2010-09-20 친선 요르단 2-0 바레인|
| | | | | | 2009-06-04 친선 바레인 4-0 요르단|
| 2024-01-24 | 19:30:00 | | 인도네시아| 0 | |
| 2024-01-24 | 19:30:00 | 이라크| | 5 | 2023-11-21 아시아 예선 베트남 0-1 이라크|
| | | | | | 2019-01-08 아시안컵 이라크 3-2 베트남|
| | | | | | 2016-03-29 아시아 예선 이라크 1-0 베트남|
| | | | | | 2015-10-08 아시아 예선 베트남 1-1 이라크|
| | | | | | 2007-07-21 아시안컵 이라크 2-0 베트남|
| 2024-01-23 | 23:00:00 | 일본 홍콩| 팔레스타인| 2 | 2001-03-20 아시아 예선 팔레스타인 1-0 일본 홍콩|
| | | | | | 2001-03-04 아시아 예선 일본 홍콩 1-1 팔레스타인|
| 2024-01-23 | 23:00:00 | | 아랍에미리트| 11 | 2022-02-01 아시아 예선 이란 1-0 UAE|
| | | | | | 2021-10-08 아시아 예선 UAE 0-1 이란|
| | | | | | 2015-01-19 아시안컵 이란 1-0 UAE|
| | | | | | 2011-01-20 아시안컵 UAE 0-3 이란|
| | | | | | 2009-06-10 아시아 예선 이란 1-0 UAE|
| | | | | | 2008-11-19 아시아 예선 UAE 1-1 이란|
| | | | | | 2008-06-08 아시아 예선 UAE 0-1 이란|
| | | | | | 2008-06-02 아시아 예선 이란 0-0 UAE|
| | | | | | 2007-01-12 친선 아랍에미리트 0-2 이란|
| | | | | | 2001-10-31 아시아 예선 UAE 0-3 이란|
| | | | | | 2001-10-25 아시아 예선 이란 1-0 UAE|
| 2024-01-23 | 19:30:00 | 호주| 우즈베키스탄| 4 | 2019-01-21 아시안컵 호주 0-0 우즈베키스탄|
| | | | | | 2011-01-26 아시안컵 우즈베키스탄 0-6 호주|
| | | | | | 2009-04-01 아시아 예선 호주 2-0 우즈베키스탄|
| | | | | | 2008-09-10 아시아 예선 우즈베키스탄 0-1 호주|
| 2024-01-23 | 19:30:00 | Syria| | 6 | 2019-07-16 친선 인도 1-1 시리아|
| | | | | | 2012-08-22 네루컵 인도 2-1 시리아|
| | | | | | 2009-08-31 네루컵 인도 0-0 시리아|
| | | | | | 2009-08-29 네루컵 인도 0-1 시리아|
| | | | | | 2007-08-29 친선 인도 1-0 시리아|
| | | | | | 2007-08-23 우방 인도 2-3 시리아|
| 2024-01-22 | 23:00:00 | Qatar| | 11 | 2018-09-08 친선 카타르 1-0 일본|
| | | | | | 2017-09-05 아시아 예선 카타르 1-2 일본|
| | | | | | 2016-11-15 아시아 예선 일본 0-0 카타르|
| | | | | | 2016-03-29 아시아 예선 일본 2-0 카타르|
| | | | | | 2015-10-08 아시아 예선 카타르 1-0 일본|
| | | | | | 2011-01-13 아시안컵 일본 0-2 카타르|
| | | | | | 2008-06-07 아시아 예선 일본 0-1 카타르|
| | | | | | 2008-06-03 아시아 예선 카타르 0-0 일본|
| | | | | | 2004-07-25 아시안컵 일본 1-0 카타르|
| | | | | | 2001-10-13 아시아 예선 일본 3-0 카타르|
| | | | | | 2001-09-08 아시아 예선 카타르 1-1 일본|
| 2024-01-22 | 23:00:00 | 타지키스탄| 레바논| 0 | |
+------------+----------+--------------+--------------+----------+-----------------------------------------------+
면책 조항
이 모든 소스 코드의 공개 번호는 개인 연구를 위해 작성되었으며 컴퓨터 기술 학습 및 연구 및 기타 합법적 인 행위에만 사용할 수 있으며 소스 코드의 공개 번호를 사용하여 비즈니스의 국가 법률 및 규정을 위반하는 행위를 금지하며 불법 및 부정의 존재를 발견하면 네트워크 모니터링 부서에 신고합니다.
공개 번호 앵그리 잇 맨, 슈퍼 파이썬 크롤러 예제 소스 코드를 팔로우하는 것을 환영합니다.




