Files
QUZ/__pycache__/scrape_cbtbank.cpython-313.pyc
T

117 lines
18 KiB
Plaintext
Raw Normal View History

2026-06-28 23:48:13 +00:00
ó
¹1?jàEã óPSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSK J
r
SSK J r J
r
Jr SrSrS#SjrSrS$S jr\S :XGa-\R*"S
S9r\R/S\SSS9 \R/S\SSS9 \R/SSSS9 \R/S\SSS9 \R/S\S SS9 \R/S\S
SS9 \R55r\R8(aP\R8R;S 5Vs/sH)oR=5(dMUR=5PM+ snOSr\"\R@\\RB\RD\RF\RHS!9 ggs snf!\%a \&"S"5 \RN"S5 gf=f)%éN)Ú
BeautifulSoup)ÚquoteÚunquoteÚurlparsecó¢U(dg[US5nURS5HnURS5 M URS5HnURS5 M URS5H%nUR S5 URS5 M' URS S
/5H1nUR 5nU(dMURS US 35 M3 URS 5HOnUR 5nUR
S
S5nU(dM.U(dM7URSUSUS35 MQ UR 5nURS5V s/sHo™R5PM n
n SRU
5n SU ;aU RSS5n SU ;aMU R5$s sn f)ú html.parserÚpz
ÚbrÚ
Úliz- ÚstrongÚ**ÚhrefÚ[z](Ú)z
) rÚfind_allÚ insert_afterÚ replace_withÚ
insert_beforeÚget_textÚgetÚsplitÚrstripÚjoinÚreplaceÚstrip) Ú html_contentÚsoupr
r r
rÚtextrrÚlineÚlinesÚ cleaned_texts Ú!/root/go/ws/QUZ/scrape_cbtbank.pyÚhtml_to_markdownr'
s‘Þ ØÜ ˜ }Ó 5€Dð]‰]˜3Ö
ˆØ ñ ðm‰m˜DÖØ
˜Öñm‰m˜!ˆØ
×Ñ˜ÔØ
˜Öñ
—-‘- ¨3 ÖØÓ ˆß ˆ4Ø × Ñ  " T F¨" 
Ö  ]‰]˜3Ö
ˆØz‰z‹|ˆØu‰uV˜RÓ ˆß ˆ4—D
N‰N˜Q˜t˜f B t f¨AÐ  ð =‰=?€Dð(,§z¡z°$Ô'7Ó 8Ò'7˜t[‰[Ž]Ñ'7€EÐ —99˜#€LØ

#×+¨H°fÓ=ˆ ð 
× Ñ Ó Ðùò
9sÅ0G có[RR[U5R5SnU(a[ U5S:”aSn[
R "URS55R5nSUU3$)éz.pngúutf-8Úcbtbank_) ÚosÚpathÚsplitextrÚlenÚhashlibÚmd5ÚencodeÚ hexdigest)ÚurlÚextÚhs r&Úget_image_filenamer85shÜ
'‰'×
Ñ
œ8 C=×
.¨qÑ
1€CÞ ”#c“(˜Q“,ØˆÜ Š C—JJ˜wÓ(×4€AØ
a˜Ð Ðóçð?cóúU(dgURS5(aSU3nURS5(dU$[R"USS9 [U5n[RR X5n[RR
U5(aSU3$[R"U5 SS0n[R"XS S
9nURS :XaC[US 5nURUR5 SSS5 [S
U35 SU3$[SUSURS35 U$!,(df  N@=f![ an[SU35 SnAU$SnAff=f)/zhttps://cbtbank.krÚhttpT)Úexist_okz/assets/ú
User-AgentúsMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36é©ÚheadersÚtimeoutéÈÚwbz [Image] Downloaded image: z* [Image Warning] Failed to download: z (HTTP rz- [Image Error] Error downloading image: )Ú
startswithr-Úmakedirsr8r.rÚexistsÚtimeÚsleepÚrequestsrÚ status_codeÚopenÚwriteÚcontentÚprintÚ Exception) Ú image_urlÚ
target_dirÚdelayÚfilenameÚ dest_pathrCÚes r&Údownload_and_save_imager[<sdÞ Øð×јC× Ñ Ø¨ Ð4ˆ à × Ñ  × ÐðCÜ
Š Ò% iÓÜ—G‘G—L‘L Ó6ˆ ä
7‰7>‰>˜)× ˜h˜ 
Š
à ðPð
ˆô
LŠL˜¸RÑ Ø =‰=˜ ÜÔ&¨!ؘŸ ™ Ô Ð4°X°JÐ ˜h˜ZÐ Ð>¸y¸ÐQR×Q^ÑQ^ÐP_Ð_`Ð  Ð÷&ûô óCÜ
Ð=¸a¸SÐ ÐûðCús=½A'EÂ%A EÃ0EÄ EÄ'EÅ
EÅEÅ
E:Å!E5Å5E:có”UR5nURS5 UR5Vs1sHo"SiM sn$s snf)Nz5SELECT id FROM QuizQuestions WHERE source = 'cbtbank'r)ÚcursorÚexecuteÚfetchall)Úconnr]Úrows r&Úget_existing_question_idsrb_s=Ø
[‰[]€FØ
‡N$Ÿo™oÔ /sŒFÑ 0ùÒ 0s´Aú qple_quiz.dbú./frontend/public/assetscó<^L•[R"U5nUR5nURS5 UR 5Vs/sHoˆSPM n nSU ;a,URS5 UR 5 [
S5 [U5n
[
SU35 [
SU35 S[U53n S S
0n [
S U 35 [R"X¼S S
9n
SU
l U
RS:wa)[
SU
R35 UR5 g[U
RS5n/nUR!S5HtnURSS5nUR#S5(dM-UR%S5SnUR'5R)5nUR+UUUS.5 Mv [-5n/nUH3nUSU;dMUR/US5 UR+U5 M5 [
S[1U5S35 UHn[
SUSSUSS35 M U(aVUVs/sHnUSU;d USU;dMUPM nn[
S [1U5S!UVs/sHnUSPM
sn35 Un[3US5GunnUSnUSnS"U3n[
S#5 [
S$US[1U5S%U35 [
S&U35 [
S'5 [4R6"U5 [R"UU S S
9n
SU
l U
RS:wa[
S(U
R35 M´[U
RS5nUR9S)S*9nU(d
[
S+5 S,nS-nUR:GnUR<(dMURS./5nS/R?U5n S0U;ahUR'5R)5n!S1U!;a$U!R%S1S5SR)5nOU!R)5n[
S2U35 S3U;dUR!S4S*9n"U"GHn#U#RS55n$U$(dMS-SK n%U%RCU$RES55S6-n&[
S7U$S8U&S9US35 U&U
;aU(d[
S:U$S8U&S;35 M{U#R9S<S*9n'U'(d
[
S=5 Sn(U#R!S>5n)U)Hen*U*RGS?S*9(dU*RGS@S*9(aM-U*RSA5mLTL(dMG[IUL4SBjSC55(aMcTLn( O S-SK%n+U+RKU'5n,U,R9SDS*9n-U-(aU-RM5 U,R!S>5Hn*U*RM5 M U,R'5R)5n.[NRP"SESU.5R)5n.Sn/U#R9SFS*9n0U0(a[S[UU055n//SGQn1Sn2Sn3Sn4U#R9S@S*9n5U5(GaU5R9SH5n6U6(aU6RSI5OSn7U5R!SJ5n8[3U85Hun9n:U:R9S>5n;U;(a.U;RSA5mLTL(a[WTLXS5n<SKU<SL3n=O!Sn=OU:R'5R)5n=U9SM:aU=U1U9'SIU:RS./5;dMU9n2U=n3M“ U2S:Xa4U7(a-[YU75S-
n2S-U2s=::a[1U15:aO OU1U2n3U5(a[IU15(d/SGQn1Sn2SNn3U2S:wa [UU25OSn4Sn>U((a [WU(XS5n>/n?/n@U#R9SOS*9nAUA(WAR!SPS*9nBUBnCUCR9SQS*9nDUD(aWDR'5R)5OSnEWCR9SRS*9nFUF(dMQ[S[UWF55nGSSWE;dSTWER]5;aW@R+SUWESVWG35 M˜U?R+SWWESXWG35 SYR?U?5nHSYR?W@5nI[^R`"SZU$UUS[.S\S]9nJUR5nURS^U&S_UU.U1S-U1SU1S`U1SaU2U3UHUUU/U>UJU4U&45 UI(aURSbU&S_WI45 UR 5 U
R/U&5 US-
n[
Sc5 GM G [
SeUSfUSg35 G UR5 [
Sh5 gs snfs snfs snf![Za GNHf=f![ba0nKURe5 [
SdU$S8U&S%UK35 SnKAKGSnKAKff=f)iNz PRAGMA table_info(QuizQuestions)r)Úcorrect_answerszDALTER TABLE QuizQuestions ADD COLUMN correct_answers TEXT DEFAULT ''zL>>> Database Migration: Added correct_answers column to QuizQuestions table.z
>>> Connecting to SQLite DB: z>>> Target Exam: zhttps://cbtbank.kr/category/r?r@z'>>> Fetching list of exam rounds from: rArBr+rEz([Error] Failed to fetch exam page: HTTP r rrrz/exam/r<éÿÿÿÿ)ÚidÚnamerrhzFound z unique rounds on cbtbank.kr:z - riz (ID: rz
>>> Filtered to z selected rounds: zhttps://cbtbank.kr/exam/z3
==================================================zScraping Round (z): zURL: z2==================================================z+ [Error] Failed to fetch round page: HTTP Úexams)Úclass_zN [Error] Could not find the questions container (class='exams') on this page.uì¼ë°˜rÚclassÚ zexam-class-titleÚ:z
>>> Subject switched to: z text-darkzexam-boxz question-idiÿÿÿz Question ID: z (Int: z) (z -> z!) already exists in DB. Skipping.z
exam-titlez2 [Warning] Could not find exam-title. Skipping.ÚimgÚreplyzquestion-choiceÚsrcc3ó,># UH oT;v M g7f))Ú.0Úxrqs €r&Ú <genexpr>Úscrape_exam.<locals>.<genexpr>îsøéð+Cò>B¸°®8ò>Bùsƒ)z kakao.pngzline.pngz facebook.pngz twitter.pngzband.pngz exam-numberz^[\s\.]+Úpassage)rrrrÚolÚcorrectr
z
<img src="z" />éu 주관ì‹z
view-replyz
reply-itemÚnickz
reply-commentÚAIÚaiu ### 🤖 u AI 해설
rz**: z
---