posting_zon 3.93.999 → 3.96.999
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/posting_zon.rb +384 -251
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7109711520cbbb3eba2417f47ef9adea620dd40e0d0cc11756437668616c47de
|
4
|
+
data.tar.gz: 894a122a25ee6a1bd2ba05ebedef80a780a0c6a63c4b61a62c026a9312b80163
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bae14d6890fafcb8fbe10e19542c7f07461bc9a96fe76e1134097700d31bc5b0a87e09fbcedb49d674615c71ea2ca4da75cb691dba3d11c3e14ba50caf16e326
|
7
|
+
data.tar.gz: 196b55cde5a223b4b2586d7aacb0378f338c63b7f6dc8bd0df0b7cb92abaa677a1024ddbaa3b5232d12e1e4a830da62d8c47bca29d1e8b740080eac45ae21770
|
data/lib/posting_zon.rb
CHANGED
@@ -285,8 +285,10 @@ class Naver
|
|
285
285
|
sleep(1)
|
286
286
|
rescue
|
287
287
|
@driver.quit
|
288
|
+
sleep(1)
|
288
289
|
@driver.close
|
289
290
|
return 0
|
291
|
+
sleep(1)
|
290
292
|
end
|
291
293
|
end
|
292
294
|
|
@@ -490,8 +492,10 @@ class Naver
|
|
490
492
|
end
|
491
493
|
|
492
494
|
@driver.quit
|
495
|
+
sleep(1)
|
493
496
|
@driver.close
|
494
497
|
return 0
|
498
|
+
sleep(1)
|
495
499
|
end
|
496
500
|
|
497
501
|
|
@@ -510,8 +514,10 @@ class Naver
|
|
510
514
|
end
|
511
515
|
|
512
516
|
@driver.quit
|
517
|
+
sleep(1)
|
513
518
|
@driver.close
|
514
519
|
return 0
|
520
|
+
sleep(1)
|
515
521
|
end
|
516
522
|
|
517
523
|
end
|
@@ -529,8 +535,10 @@ class Naver
|
|
529
535
|
end
|
530
536
|
end
|
531
537
|
@driver.quit
|
538
|
+
sleep(1)
|
532
539
|
@driver.close
|
533
540
|
return 0
|
541
|
+
sleep(1)
|
534
542
|
end
|
535
543
|
|
536
544
|
|
@@ -544,7 +552,7 @@ class Naver
|
|
544
552
|
wait = Selenium::WebDriver::Wait.new(:timeout => 5)
|
545
553
|
#요소가 나타날 때까지 3초 동안 기다립니다.
|
546
554
|
wait.until { @driver.find_element(xpath: '//section[@class="lwrbTd"]//button[@jsname="ajZLRd"]') } #추가 되어 있음
|
547
|
-
|
555
|
+
sleep(1)
|
548
556
|
@driver.manage.window.maximize
|
549
557
|
sleep(1)
|
550
558
|
rescue => e
|
@@ -559,8 +567,10 @@ class Naver
|
|
559
567
|
end
|
560
568
|
end
|
561
569
|
@driver.quit
|
570
|
+
sleep(1)
|
562
571
|
@driver.close
|
563
|
-
|
572
|
+
return 0
|
573
|
+
sleep(1)
|
564
574
|
end
|
565
575
|
end
|
566
576
|
|
@@ -610,22 +620,29 @@ def update(user_id, user_pw, title, content, option, post_url, signup_url, login
|
|
610
620
|
if error_text
|
611
621
|
puts '사이트 문제 발견!! 사이트에 접근할수 없습니다 창을 닫습니다.'
|
612
622
|
@driver.quit if @driver
|
613
|
-
|
614
|
-
@driver.close
|
623
|
+
return 0
|
615
624
|
end
|
616
625
|
rescue
|
617
|
-
|
618
|
-
|
619
|
-
|
620
|
-
|
621
|
-
|
622
|
-
|
623
|
-
|
624
|
-
|
625
|
-
|
626
|
-
|
626
|
+
begin
|
627
|
+
# 이 부분을 통해 페이지 내에서 "사이트에 연결할 수 없음" 텍스트를 찾습니다.
|
628
|
+
error_text = @driver.find_element(:xpath, '//*[contains(text(),"Connection timed out")]')
|
629
|
+
if error_text
|
630
|
+
puts '사이트 문제 발견!! 사이트에 접근할수 없습니다 창을 닫습니다.'
|
631
|
+
@driver.quit if @driver
|
632
|
+
return 0
|
633
|
+
end
|
634
|
+
rescue
|
635
|
+
begin
|
636
|
+
# 이 부분을 통해 페이지 내에서 "사이트에 연결할 수 없음" 텍스트를 찾습니다.
|
637
|
+
error_text = @driver.find_element(:xpath, '//h1[contains(text(),"Not Found")]')
|
638
|
+
if error_text
|
639
|
+
puts '사이트 문제 발견!! 사이트에 접근할수 없습니다 창을 닫습니다.'
|
640
|
+
@driver.quit if @driver
|
641
|
+
return 0
|
642
|
+
end
|
643
|
+
rescue
|
644
|
+
end
|
627
645
|
end
|
628
|
-
rescue
|
629
646
|
end
|
630
647
|
|
631
648
|
begin
|
@@ -702,9 +719,10 @@ def update(user_id, user_pw, title, content, option, post_url, signup_url, login
|
|
702
719
|
puts '-[√] 다음 작업 준비로 약 1초~60초 내외 시간이 소요됩니다.......'.red
|
703
720
|
end
|
704
721
|
end
|
705
|
-
|
722
|
+
sleep(1)
|
706
723
|
@driver.quit
|
707
|
-
|
724
|
+
return 0
|
725
|
+
sleep(1)
|
708
726
|
rescue
|
709
727
|
begin
|
710
728
|
# 타임아웃을 77초로 설정
|
@@ -720,7 +738,7 @@ def update(user_id, user_pw, title, content, option, post_url, signup_url, login
|
|
720
738
|
puts '-[√] 다음 작업 준비로 약 1초~60초 내외 시간이 소요됩니다.......'.red
|
721
739
|
puts e
|
722
740
|
@driver.close
|
723
|
-
|
741
|
+
return 0
|
724
742
|
end
|
725
743
|
end
|
726
744
|
rescue
|
@@ -736,23 +754,24 @@ def update(user_id, user_pw, title, content, option, post_url, signup_url, login
|
|
736
754
|
@driver.find_element(:xpath, '//*[@data-state="ready"]').click #캡챠우회버튼
|
737
755
|
puts '-[√] 캡챠 해제 진행 중 (약 30~60 초 소요됩니다).......'.green
|
738
756
|
sleep(10)
|
739
|
-
|
740
|
-
|
741
|
-
|
742
|
-
|
743
|
-
|
744
|
-
|
745
|
-
|
746
|
-
|
747
|
-
|
748
|
-
|
749
|
-
|
750
|
-
|
751
|
-
|
752
|
-
|
753
|
-
|
754
|
-
|
755
|
-
|
757
|
+
begin
|
758
|
+
@driver.find_element(:xpath, '//*[@data-state="error"]').click
|
759
|
+
puts '-[√] 캡챠 해제 실패 !! API번호 및 포인트를 체크해주세요.......'.red
|
760
|
+
puts '-[√] 캡챠 해제 실패 !! API번호 및 포인트를 체크해주세요.......'.red
|
761
|
+
@driver.window_handles.each do |handle|
|
762
|
+
@driver.switch_to.window(handle)
|
763
|
+
begin
|
764
|
+
# 로딩 중이거나, 페이지가 완전히 로딩되지 않더라도 탭을 닫기
|
765
|
+
@driver.close
|
766
|
+
rescue Selenium::WebDriver::Error::WebDriverError => e
|
767
|
+
puts '-[√] 다음 작업 준비로 약 1초~60초 내외 시간이 소요됩니다.......'.red
|
768
|
+
end
|
769
|
+
end
|
770
|
+
sleep(1)
|
771
|
+
@driver.quit
|
772
|
+
return 0
|
773
|
+
sleep(1)
|
774
|
+
rescue
|
756
775
|
begin
|
757
776
|
# 타임아웃을 77초로 설정
|
758
777
|
wait = Selenium::WebDriver::Wait.new(:timeout => 150)
|
@@ -768,7 +787,7 @@ def update(user_id, user_pw, title, content, option, post_url, signup_url, login
|
|
768
787
|
puts '-[√] 다음 작업 준비로 약 1초~60초 내외 시간이 소요됩니다.......'.red
|
769
788
|
puts e
|
770
789
|
@driver.close
|
771
|
-
|
790
|
+
return 0
|
772
791
|
end
|
773
792
|
end
|
774
793
|
rescue
|
@@ -781,23 +800,24 @@ def update(user_id, user_pw, title, content, option, post_url, signup_url, login
|
|
781
800
|
@driver.find_element(:xpath, '//*[@data-state="ready"]').click #캡챠우회버튼
|
782
801
|
puts '-[√] 캡챠 해제 진행 중 (약 30~60 초 소요됩니다).......'.green
|
783
802
|
sleep(10)
|
784
|
-
|
785
|
-
|
786
|
-
|
787
|
-
|
788
|
-
|
789
|
-
|
790
|
-
|
791
|
-
|
792
|
-
|
793
|
-
|
794
|
-
|
795
|
-
|
796
|
-
|
797
|
-
|
798
|
-
|
799
|
-
|
800
|
-
|
803
|
+
begin
|
804
|
+
@driver.find_element(:xpath, '//*[@data-state="error"]').click
|
805
|
+
puts '-[√] 캡챠 해제 실패 !! API번호 및 포인트를 체크해주세요.......'.red
|
806
|
+
puts '-[√] 캡챠 해제 실패 !! API번호 및 포인트를 체크해주세요.......'.red
|
807
|
+
@driver.window_handles.each do |handle|
|
808
|
+
@driver.switch_to.window(handle)
|
809
|
+
begin
|
810
|
+
# 로딩 중이거나, 페이지가 완전히 로딩되지 않더라도 탭을 닫기
|
811
|
+
@driver.close
|
812
|
+
rescue Selenium::WebDriver::Error::WebDriverError => e
|
813
|
+
puts '-[√] 다음 작업 준비로 약 1초~60초 내외 시간이 소요됩니다.......'.red
|
814
|
+
end
|
815
|
+
end
|
816
|
+
sleep(1)
|
817
|
+
@driver.quit
|
818
|
+
return 0
|
819
|
+
sleep(1)
|
820
|
+
rescue
|
801
821
|
begin
|
802
822
|
# 타임아웃을 77초로 설정
|
803
823
|
wait = Selenium::WebDriver::Wait.new(:timeout => 150)
|
@@ -813,7 +833,7 @@ def update(user_id, user_pw, title, content, option, post_url, signup_url, login
|
|
813
833
|
puts '-[√] 다음 작업 준비로 약 1초~60초 내외 시간이 소요됩니다.......'.red
|
814
834
|
puts e
|
815
835
|
@driver.close
|
816
|
-
|
836
|
+
return 0
|
817
837
|
end
|
818
838
|
end
|
819
839
|
rescue
|
@@ -849,7 +869,7 @@ def update(user_id, user_pw, title, content, option, post_url, signup_url, login
|
|
849
869
|
puts '-[√] 다음 작업 준비로 약 1초~60초 내외 시간이 소요됩니다.......'.red
|
850
870
|
puts e
|
851
871
|
@driver.close
|
852
|
-
|
872
|
+
return 0
|
853
873
|
end
|
854
874
|
end
|
855
875
|
begin
|
@@ -863,13 +883,31 @@ def update(user_id, user_pw, title, content, option, post_url, signup_url, login
|
|
863
883
|
# 이 부분을 통해 페이지 내에서 "사이트에 연결할 수 없음" 텍스트를 찾습니다.
|
864
884
|
error_text = @driver.find_element(:xpath, '//*[contains(text(),"사이트에 연결할 수 없음")]')
|
865
885
|
if error_text
|
866
|
-
puts '
|
886
|
+
puts '사이트 문제 발견!! 사이트에 접근할수 없습니다 창을 닫습니다.'
|
867
887
|
@driver.quit if @driver
|
868
|
-
|
869
|
-
|
888
|
+
return 0
|
889
|
+
end
|
890
|
+
rescue
|
891
|
+
begin
|
892
|
+
# 이 부분을 통해 페이지 내에서 "사이트에 연결할 수 없음" 텍스트를 찾습니다.
|
893
|
+
error_text = @driver.find_element(:xpath, '//*[contains(text(),"Connection timed out")]')
|
894
|
+
if error_text
|
895
|
+
puts '사이트 문제 발견!! 사이트에 접근할수 없습니다 창을 닫습니다.'
|
896
|
+
@driver.quit if @driver
|
897
|
+
return 0
|
898
|
+
end
|
899
|
+
rescue
|
900
|
+
begin
|
901
|
+
# 이 부분을 통해 페이지 내에서 "사이트에 연결할 수 없음" 텍스트를 찾습니다.
|
902
|
+
error_text = @driver.find_element(:xpath, '//h1[contains(text(),"Not Found")]')
|
903
|
+
if error_text
|
904
|
+
puts '사이트 문제 발견!! 사이트에 접근할수 없습니다 창을 닫습니다.'
|
905
|
+
@driver.quit if @driver
|
906
|
+
return 0
|
907
|
+
end
|
908
|
+
rescue
|
909
|
+
end
|
870
910
|
end
|
871
|
-
rescue Selenium::WebDriver::Error::NoSuchElementError
|
872
|
-
# 해당 텍스트가 없으면 아무 작업 안함
|
873
911
|
end
|
874
912
|
|
875
913
|
|
@@ -1062,8 +1100,10 @@ def update(user_id, user_pw, title, content, option, post_url, signup_url, login
|
|
1062
1100
|
puts '-[√] 회원가입 1차 페이지 접속 시도 실패 (페이지 로딩 지연 및 접속 불량).......'.red
|
1063
1101
|
puts '-[√] 다음 작업 준비로 약 1초~60초 내외 시간이 소요됩니다.......'.red
|
1064
1102
|
puts e
|
1103
|
+
sleep(1)
|
1065
1104
|
@driver.close
|
1066
|
-
|
1105
|
+
return 0
|
1106
|
+
sleep(1)
|
1067
1107
|
|
1068
1108
|
end
|
1069
1109
|
end
|
@@ -1126,9 +1166,8 @@ def update(user_id, user_pw, title, content, option, post_url, signup_url, login
|
|
1126
1166
|
puts '-[√] 다음 작업 준비로 약 1초~60초 내외 시간이 소요됩니다.......'.red
|
1127
1167
|
end
|
1128
1168
|
end
|
1129
|
-
#return 0
|
1130
1169
|
@driver.quit
|
1131
|
-
|
1170
|
+
return 0
|
1132
1171
|
rescue
|
1133
1172
|
# 타임아웃을 77초로 설정
|
1134
1173
|
wait = Selenium::WebDriver::Wait.new(:timeout => 150)
|
@@ -3397,9 +3436,8 @@ sleep(10)
|
|
3397
3436
|
puts '-[√] 다음 작업 준비로 약 1초~60초 내외 시간이 소요됩니다.......'.red
|
3398
3437
|
end
|
3399
3438
|
end
|
3400
|
-
#return 0
|
3401
3439
|
@driver.quit
|
3402
|
-
|
3440
|
+
return 0
|
3403
3441
|
rescue
|
3404
3442
|
# 타임아웃을 77초로 설정
|
3405
3443
|
wait = Selenium::WebDriver::Wait.new(:timeout => 150)
|
@@ -3535,7 +3573,7 @@ end
|
|
3535
3573
|
puts '-[√] 다음 작업 준비로 약 1초~60초 내외 시간이 소요됩니다.......'.red
|
3536
3574
|
puts e
|
3537
3575
|
@driver.close
|
3538
|
-
|
3576
|
+
return 0
|
3539
3577
|
end
|
3540
3578
|
|
3541
3579
|
|
@@ -3579,24 +3617,32 @@ login_url = option['login_url'].to_s
|
|
3579
3617
|
if error_text
|
3580
3618
|
puts '사이트 문제 발견!! 사이트에 접근할수 없습니다 창을 닫습니다.'
|
3581
3619
|
@driver.quit if @driver
|
3582
|
-
|
3583
|
-
#return 0
|
3620
|
+
return 0
|
3584
3621
|
end
|
3585
3622
|
rescue
|
3586
|
-
|
3587
|
-
|
3588
|
-
|
3589
|
-
|
3590
|
-
|
3591
|
-
|
3592
|
-
|
3593
|
-
|
3594
|
-
|
3595
|
-
|
3623
|
+
begin
|
3624
|
+
# 이 부분을 통해 페이지 내에서 "사이트에 연결할 수 없음" 텍스트를 찾습니다.
|
3625
|
+
error_text = @driver.find_element(:xpath, '//*[contains(text(),"Connection timed out")]')
|
3626
|
+
if error_text
|
3627
|
+
puts '사이트 문제 발견!! 사이트에 접근할수 없습니다 창을 닫습니다.'
|
3628
|
+
@driver.quit if @driver
|
3629
|
+
return 0
|
3630
|
+
end
|
3631
|
+
rescue
|
3632
|
+
begin
|
3633
|
+
# 이 부분을 통해 페이지 내에서 "사이트에 연결할 수 없음" 텍스트를 찾습니다.
|
3634
|
+
error_text = @driver.find_element(:xpath, '//h1[contains(text(),"Not Found")]')
|
3635
|
+
if error_text
|
3636
|
+
puts '사이트 문제 발견!! 사이트에 접근할수 없습니다 창을 닫습니다.'
|
3637
|
+
@driver.quit if @driver
|
3638
|
+
return 0
|
3639
|
+
end
|
3640
|
+
rescue
|
3641
|
+
end
|
3596
3642
|
end
|
3597
|
-
rescue
|
3598
3643
|
end
|
3599
3644
|
|
3645
|
+
|
3600
3646
|
begin
|
3601
3647
|
wait = Selenium::WebDriver::Wait.new(:timeout => 2) # 3초 대기
|
3602
3648
|
alert = wait.until { @driver.switch_to.alert } # alert가 나타날 때까지 기다림
|
@@ -3656,9 +3702,8 @@ login_url = option['login_url'].to_s
|
|
3656
3702
|
puts '-[√] 다음 작업 준비로 약 1초~60초 내외 시간이 소요됩니다.......'.red
|
3657
3703
|
end
|
3658
3704
|
end
|
3659
|
-
#return 0
|
3660
3705
|
@driver.quit
|
3661
|
-
|
3706
|
+
return 0
|
3662
3707
|
rescue
|
3663
3708
|
begin
|
3664
3709
|
# 타임아웃을 77초로 설정
|
@@ -3698,9 +3743,8 @@ login_url = option['login_url'].to_s
|
|
3698
3743
|
puts '-[√] 다음 작업 준비로 약 1초~60초 내외 시간이 소요됩니다.......'.red
|
3699
3744
|
end
|
3700
3745
|
end
|
3701
|
-
#return 0
|
3702
3746
|
@driver.quit
|
3703
|
-
|
3747
|
+
return 0
|
3704
3748
|
rescue
|
3705
3749
|
begin
|
3706
3750
|
# 타임아웃을 77초로 설정
|
@@ -3738,9 +3782,8 @@ login_url = option['login_url'].to_s
|
|
3738
3782
|
puts '-[√] 다음 작업 준비로 약 1초~60초 내외 시간이 소요됩니다.......'.red
|
3739
3783
|
end
|
3740
3784
|
end
|
3741
|
-
#return 0
|
3742
3785
|
@driver.quit
|
3743
|
-
|
3786
|
+
return 0
|
3744
3787
|
rescue
|
3745
3788
|
begin
|
3746
3789
|
# 타임아웃을 77초로 설정
|
@@ -3780,9 +3823,8 @@ login_url = option['login_url'].to_s
|
|
3780
3823
|
puts '-[√] 다음 작업 준비로 약 1초~60초 내외 시간이 소요됩니다.......'.red
|
3781
3824
|
end
|
3782
3825
|
end
|
3783
|
-
#return 0
|
3784
3826
|
@driver.quit
|
3785
|
-
|
3827
|
+
return 0
|
3786
3828
|
rescue
|
3787
3829
|
begin
|
3788
3830
|
# 타임아웃을 77초로 설정
|
@@ -4477,19 +4519,38 @@ login_url = option['login_url'].to_s
|
|
4477
4519
|
end
|
4478
4520
|
##<─────────────────────────────────────────────────────────────────────팝업 코드 확인 및 제거 부분
|
4479
4521
|
|
4522
|
+
begin
|
4523
|
+
# 이 부분을 통해 페이지 내에서 "사이트에 연결할 수 없음" 텍스트를 찾습니다.
|
4524
|
+
error_text = @driver.find_element(:xpath, '//*[contains(text(),"사이트에 연결할 수 없음")]')
|
4525
|
+
if error_text
|
4526
|
+
puts '사이트 문제 발견!! 사이트에 접근할수 없습니다 창을 닫습니다.'
|
4527
|
+
@driver.quit if @driver
|
4528
|
+
return 0
|
4529
|
+
end
|
4530
|
+
rescue
|
4531
|
+
begin
|
4532
|
+
# 이 부분을 통해 페이지 내에서 "사이트에 연결할 수 없음" 텍스트를 찾습니다.
|
4533
|
+
error_text = @driver.find_element(:xpath, '//*[contains(text(),"Connection timed out")]')
|
4534
|
+
if error_text
|
4535
|
+
puts '사이트 문제 발견!! 사이트에 접근할수 없습니다 창을 닫습니다.'
|
4536
|
+
@driver.quit if @driver
|
4537
|
+
return 0
|
4538
|
+
end
|
4539
|
+
rescue
|
4540
|
+
begin
|
4541
|
+
# 이 부분을 통해 페이지 내에서 "사이트에 연결할 수 없음" 텍스트를 찾습니다.
|
4542
|
+
error_text = @driver.find_element(:xpath, '//h1[contains(text(),"Not Found")]')
|
4543
|
+
if error_text
|
4544
|
+
puts '사이트 문제 발견!! 사이트에 접근할수 없습니다 창을 닫습니다.'
|
4545
|
+
@driver.quit if @driver
|
4546
|
+
return 0
|
4547
|
+
end
|
4548
|
+
rescue Selenium::WebDriver::Error::NoSuchElementError
|
4549
|
+
@driver.action.key_down(:tab).key_up(:tab).perform #x탭
|
4550
|
+
end
|
4551
|
+
end
|
4552
|
+
end
|
4480
4553
|
|
4481
|
-
begin
|
4482
|
-
# 이 부분을 통해 페이지 내에서 "사이트에 연결할 수 없음" 텍스트를 찾습니다.
|
4483
|
-
error_text = @driver.find_element(:xpath, '//*[contains(text(),"사이트에 연결할 수 없음")]')
|
4484
|
-
if error_text
|
4485
|
-
puts '사이트에 연결할 수 없음 텍스트가 발견되었습니다. 창을 닫습니다.'
|
4486
|
-
@driver.quit if @driver
|
4487
|
-
@driver.close
|
4488
|
-
#return 0
|
4489
|
-
end
|
4490
|
-
rescue Selenium::WebDriver::Error::NoSuchElementError
|
4491
|
-
@driver.action.key_down(:tab).key_up(:tab).perform #x탭
|
4492
|
-
end
|
4493
4554
|
|
4494
4555
|
##아이디 입력 코드 부분─────────────────────────────────────────────────────────────────────>
|
4495
4556
|
|
@@ -4960,22 +5021,29 @@ begin
|
|
4960
5021
|
if error_text
|
4961
5022
|
puts '사이트 문제 발견!! 사이트에 접근할수 없습니다 창을 닫습니다.'
|
4962
5023
|
@driver.quit if @driver
|
4963
|
-
|
4964
|
-
#return 0
|
5024
|
+
return 0
|
4965
5025
|
end
|
4966
5026
|
rescue
|
4967
|
-
|
4968
|
-
|
4969
|
-
|
4970
|
-
|
4971
|
-
|
4972
|
-
|
4973
|
-
|
4974
|
-
|
4975
|
-
|
4976
|
-
|
5027
|
+
begin
|
5028
|
+
# 이 부분을 통해 페이지 내에서 "사이트에 연결할 수 없음" 텍스트를 찾습니다.
|
5029
|
+
error_text = @driver.find_element(:xpath, '//*[contains(text(),"Connection timed out")]')
|
5030
|
+
if error_text
|
5031
|
+
puts '사이트 문제 발견!! 사이트에 접근할수 없습니다 창을 닫습니다.'
|
5032
|
+
@driver.quit if @driver
|
5033
|
+
return 0
|
5034
|
+
end
|
5035
|
+
rescue
|
5036
|
+
begin
|
5037
|
+
# 이 부분을 통해 페이지 내에서 "사이트에 연결할 수 없음" 텍스트를 찾습니다.
|
5038
|
+
error_text = @driver.find_element(:xpath, '//h1[contains(text(),"Not Found")]')
|
5039
|
+
if error_text
|
5040
|
+
puts '사이트 문제 발견!! 사이트에 접근할수 없습니다 창을 닫습니다.'
|
5041
|
+
@driver.quit if @driver
|
5042
|
+
return 0
|
5043
|
+
end
|
5044
|
+
rescue
|
5045
|
+
end
|
4977
5046
|
end
|
4978
|
-
rescue
|
4979
5047
|
end
|
4980
5048
|
|
4981
5049
|
begin
|
@@ -5007,45 +5075,43 @@ begin
|
|
5007
5075
|
rescue
|
5008
5076
|
end
|
5009
5077
|
##캡챠 해제 입력 코드 부분─────────────────────────────────────────────────────────────────────>
|
5010
|
-
|
5011
|
-
|
5012
|
-
|
5013
|
-
|
5014
|
-
|
5015
|
-
|
5016
|
-
|
5017
|
-
|
5018
|
-
|
5019
|
-
|
5020
|
-
|
5021
|
-
|
5022
|
-
|
5023
|
-
|
5024
|
-
|
5025
|
-
|
5026
|
-
|
5027
|
-
|
5028
|
-
|
5029
|
-
|
5030
|
-
|
5031
|
-
|
5032
|
-
|
5033
|
-
|
5034
|
-
|
5035
|
-
|
5036
|
-
|
5037
|
-
|
5038
|
-
|
5039
|
-
|
5040
|
-
|
5041
|
-
|
5042
|
-
|
5043
|
-
|
5044
|
-
|
5045
|
-
|
5046
|
-
|
5047
|
-
sleep(3)
|
5048
|
-
end
|
5078
|
+
begin
|
5079
|
+
sleep(5)
|
5080
|
+
# 타임아웃을 3초로 설정
|
5081
|
+
wait = Selenium::WebDriver::Wait.new(:timeout => 3)
|
5082
|
+
# 요소가 나타날 때까지 30초 동안 기다립니다.
|
5083
|
+
wait.until { @driver.find_element(:xpath, '//*[@data-state="ready"]') }
|
5084
|
+
sleep(1)
|
5085
|
+
@driver.find_element(:xpath, '//*[@data-state="ready"]').click #캡챠우회버튼
|
5086
|
+
puts '-[√] 캡챠 해제 진행 중 (약 30~60 초 소요됩니다).......'.green
|
5087
|
+
sleep(10)
|
5088
|
+
begin
|
5089
|
+
@driver.find_element(:xpath, '//*[@data-state="error"]').click
|
5090
|
+
puts '-[√] 캡챠 해제 실패 !! API번호 및 포인트를 체크해주세요.......'.red
|
5091
|
+
puts '-[√] 캡챠 해제 실패 !! API번호 및 포인트를 체크해주세요.......'.red
|
5092
|
+
@driver.window_handles.each do |handle|
|
5093
|
+
@driver.switch_to.window(handle)
|
5094
|
+
begin
|
5095
|
+
# 로딩 중이거나, 페이지가 완전히 로딩되지 않더라도 탭을 닫기
|
5096
|
+
@driver.close
|
5097
|
+
rescue Selenium::WebDriver::Error::WebDriverError => e
|
5098
|
+
puts '-[√] 다음 작업 준비로 약 1초~60초 내외 시간이 소요됩니다.......'.red
|
5099
|
+
end
|
5100
|
+
end
|
5101
|
+
sleep(1)
|
5102
|
+
@driver.quit
|
5103
|
+
return 0
|
5104
|
+
sleep(1)
|
5105
|
+
rescue
|
5106
|
+
# 타임아웃을 77초로 설정
|
5107
|
+
wait = Selenium::WebDriver::Wait.new(:timeout => 150)
|
5108
|
+
# 요소가 나타날 때까지 100초 동안 기다립니다.
|
5109
|
+
wait.until { @driver.find_element(:xpath, '//*[@data-state="solved"]') }
|
5110
|
+
sleep(1)
|
5111
|
+
@driver.find_element(:xpath, '//*[@data-state="solved"]').click
|
5112
|
+
puts '-[√] 캡챠 해제 완료 → 이어서 진행 합니다.......'.green
|
5113
|
+
sleep(3)
|
5114
|
+
end
|
5049
5115
|
rescue
|
5050
5116
|
puts '-[√] 캡챠 발생 없음.......'.green
|
5051
5117
|
end
|
@@ -5072,7 +5138,7 @@ begin
|
|
5072
5138
|
puts '-[√] 다음 작업 준비로 약 1초~60초 내외 시간이 소요됩니다.......'.red
|
5073
5139
|
puts e
|
5074
5140
|
@driver.close
|
5075
|
-
|
5141
|
+
return 0
|
5076
5142
|
end
|
5077
5143
|
end
|
5078
5144
|
|
@@ -5080,13 +5146,31 @@ begin
|
|
5080
5146
|
# 이 부분을 통해 페이지 내에서 "사이트에 연결할 수 없음" 텍스트를 찾습니다.
|
5081
5147
|
error_text = @driver.find_element(:xpath, '//*[contains(text(),"사이트에 연결할 수 없음")]')
|
5082
5148
|
if error_text
|
5083
|
-
puts '
|
5149
|
+
puts '사이트 문제 발견!! 사이트에 접근할수 없습니다 창을 닫습니다.'
|
5084
5150
|
@driver.quit if @driver
|
5085
|
-
|
5086
|
-
|
5151
|
+
return 0
|
5152
|
+
end
|
5153
|
+
rescue
|
5154
|
+
begin
|
5155
|
+
# 이 부분을 통해 페이지 내에서 "사이트에 연결할 수 없음" 텍스트를 찾습니다.
|
5156
|
+
error_text = @driver.find_element(:xpath, '//*[contains(text(),"Connection timed out")]')
|
5157
|
+
if error_text
|
5158
|
+
puts '사이트 문제 발견!! 사이트에 접근할수 없습니다 창을 닫습니다.'
|
5159
|
+
@driver.quit if @driver
|
5160
|
+
return 0
|
5161
|
+
end
|
5162
|
+
rescue
|
5163
|
+
begin
|
5164
|
+
# 이 부분을 통해 페이지 내에서 "사이트에 연결할 수 없음" 텍스트를 찾습니다.
|
5165
|
+
error_text = @driver.find_element(:xpath, '//h1[contains(text(),"Not Found")]')
|
5166
|
+
if error_text
|
5167
|
+
puts '사이트 문제 발견!! 사이트에 접근할수 없습니다 창을 닫습니다.'
|
5168
|
+
@driver.quit if @driver
|
5169
|
+
return 0
|
5170
|
+
end
|
5171
|
+
rescue
|
5172
|
+
end
|
5087
5173
|
end
|
5088
|
-
rescue Selenium::WebDriver::Error::NoSuchElementError
|
5089
|
-
# 해당 텍스트가 없으면 아무 작업 안함
|
5090
5174
|
end
|
5091
5175
|
|
5092
5176
|
|
@@ -5278,22 +5362,29 @@ post_url = option['post_url'].to_s
|
|
5278
5362
|
if error_text
|
5279
5363
|
puts '사이트 문제 발견!! 사이트에 접근할수 없습니다 창을 닫습니다.'
|
5280
5364
|
@driver.quit if @driver
|
5281
|
-
|
5282
|
-
#return 0
|
5365
|
+
return 0
|
5283
5366
|
end
|
5284
5367
|
rescue
|
5285
|
-
|
5286
|
-
|
5287
|
-
|
5288
|
-
|
5289
|
-
|
5290
|
-
|
5291
|
-
|
5292
|
-
|
5293
|
-
|
5294
|
-
|
5368
|
+
begin
|
5369
|
+
# 이 부분을 통해 페이지 내에서 "사이트에 연결할 수 없음" 텍스트를 찾습니다.
|
5370
|
+
error_text = @driver.find_element(:xpath, '//*[contains(text(),"Connection timed out")]')
|
5371
|
+
if error_text
|
5372
|
+
puts '사이트 문제 발견!! 사이트에 접근할수 없습니다 창을 닫습니다.'
|
5373
|
+
@driver.quit if @driver
|
5374
|
+
return 0
|
5375
|
+
end
|
5376
|
+
rescue
|
5377
|
+
begin
|
5378
|
+
# 이 부분을 통해 페이지 내에서 "사이트에 연결할 수 없음" 텍스트를 찾습니다.
|
5379
|
+
error_text = @driver.find_element(:xpath, '//h1[contains(text(),"Not Found")]')
|
5380
|
+
if error_text
|
5381
|
+
puts '사이트 문제 발견!! 사이트에 접근할수 없습니다 창을 닫습니다.'
|
5382
|
+
@driver.quit if @driver
|
5383
|
+
return 0
|
5384
|
+
end
|
5385
|
+
rescue
|
5386
|
+
end
|
5295
5387
|
end
|
5296
|
-
rescue
|
5297
5388
|
end
|
5298
5389
|
|
5299
5390
|
begin
|
@@ -5407,8 +5498,10 @@ post_url = option['post_url'].to_s
|
|
5407
5498
|
end
|
5408
5499
|
end
|
5409
5500
|
#return 0
|
5501
|
+
sleep(1)
|
5410
5502
|
@driver.quit
|
5411
|
-
|
5503
|
+
return 0
|
5504
|
+
sleep(1)
|
5412
5505
|
rescue
|
5413
5506
|
begin
|
5414
5507
|
# 타임아웃을 77초로 설정
|
@@ -5424,7 +5517,7 @@ post_url = option['post_url'].to_s
|
|
5424
5517
|
puts '-[√] 다음 작업 준비로 약 1초~60초 내외 시간이 소요됩니다.......'.red
|
5425
5518
|
puts e
|
5426
5519
|
@driver.close
|
5427
|
-
|
5520
|
+
return 0
|
5428
5521
|
end
|
5429
5522
|
end
|
5430
5523
|
rescue
|
@@ -5454,8 +5547,10 @@ post_url = option['post_url'].to_s
|
|
5454
5547
|
end
|
5455
5548
|
end
|
5456
5549
|
#return 0
|
5550
|
+
sleep(1)
|
5457
5551
|
@driver.quit
|
5458
|
-
|
5552
|
+
return 0
|
5553
|
+
sleep(1)
|
5459
5554
|
rescue
|
5460
5555
|
begin
|
5461
5556
|
# 타임아웃을 77초로 설정
|
@@ -5472,7 +5567,7 @@ post_url = option['post_url'].to_s
|
|
5472
5567
|
puts '-[√] 다음 작업 준비로 약 1초~60초 내외 시간이 소요됩니다.......'.red
|
5473
5568
|
puts e
|
5474
5569
|
@driver.close
|
5475
|
-
|
5570
|
+
return 0
|
5476
5571
|
end
|
5477
5572
|
end
|
5478
5573
|
rescue
|
@@ -5521,8 +5616,9 @@ post_url = option['post_url'].to_s
|
|
5521
5616
|
puts '-[√] 다음 작업 준비로 약 1초~60초 내외 시간이 소요됩니다.......'.red
|
5522
5617
|
puts e
|
5523
5618
|
@driver.quit
|
5524
|
-
|
5525
|
-
|
5619
|
+
sleep(1)
|
5620
|
+
return 0
|
5621
|
+
sleep(1)
|
5526
5622
|
end
|
5527
5623
|
end
|
5528
5624
|
|
@@ -5533,16 +5629,34 @@ post_url = option['post_url'].to_s
|
|
5533
5629
|
end
|
5534
5630
|
|
5535
5631
|
begin
|
5536
|
-
|
5537
|
-
|
5538
|
-
|
5539
|
-
|
5632
|
+
# 이 부분을 통해 페이지 내에서 "사이트에 연결할 수 없음" 텍스트를 찾습니다.
|
5633
|
+
error_text = @driver.find_element(:xpath, '//*[contains(text(),"사이트에 연결할 수 없음")]')
|
5634
|
+
if error_text
|
5635
|
+
puts '사이트 문제 발견!! 사이트에 접근할수 없습니다 창을 닫습니다.'
|
5636
|
+
@driver.quit if @driver
|
5637
|
+
return 0
|
5638
|
+
end
|
5639
|
+
rescue
|
5640
|
+
begin
|
5641
|
+
# 이 부분을 통해 페이지 내에서 "사이트에 연결할 수 없음" 텍스트를 찾습니다.
|
5642
|
+
error_text = @driver.find_element(:xpath, '//*[contains(text(),"Connection timed out")]')
|
5643
|
+
if error_text
|
5644
|
+
puts '사이트 문제 발견!! 사이트에 접근할수 없습니다 창을 닫습니다.'
|
5540
5645
|
@driver.quit if @driver
|
5541
|
-
|
5542
|
-
|
5543
|
-
|
5544
|
-
|
5545
|
-
|
5646
|
+
return 0
|
5647
|
+
end
|
5648
|
+
rescue
|
5649
|
+
begin
|
5650
|
+
# 이 부분을 통해 페이지 내에서 "사이트에 연결할 수 없음" 텍스트를 찾습니다.
|
5651
|
+
error_text = @driver.find_element(:xpath, '//h1[contains(text(),"Not Found")]')
|
5652
|
+
if error_text
|
5653
|
+
puts '사이트 문제 발견!! 사이트에 접근할수 없습니다 창을 닫습니다.'
|
5654
|
+
@driver.quit if @driver
|
5655
|
+
return 0
|
5656
|
+
end
|
5657
|
+
rescue
|
5658
|
+
end
|
5659
|
+
end
|
5546
5660
|
end
|
5547
5661
|
|
5548
5662
|
|
@@ -7516,7 +7630,9 @@ end
|
|
7516
7630
|
end
|
7517
7631
|
#return 0
|
7518
7632
|
@driver.quit
|
7519
|
-
|
7633
|
+
sleep(1)
|
7634
|
+
return 0
|
7635
|
+
sleep(1)
|
7520
7636
|
end
|
7521
7637
|
end
|
7522
7638
|
end
|
@@ -9329,7 +9445,9 @@ if check_captcha == 1
|
|
9329
9445
|
end
|
9330
9446
|
#return 0
|
9331
9447
|
@driver.quit
|
9332
|
-
|
9448
|
+
sleep(1)
|
9449
|
+
return 0
|
9450
|
+
sleep(1)
|
9333
9451
|
rescue
|
9334
9452
|
# 타임아웃을 77초로 설정
|
9335
9453
|
wait = Selenium::WebDriver::Wait.new(:timeout => 150)
|
@@ -9343,7 +9461,7 @@ if check_captcha == 1
|
|
9343
9461
|
@driver.find_element(:xpath, '//*[@name="user_captcha"]').click
|
9344
9462
|
sleep(1)
|
9345
9463
|
@driver.action.key_down(:right).key_up(:right).perform
|
9346
|
-
|
9464
|
+
rescue
|
9347
9465
|
begin
|
9348
9466
|
@driver.find_element(:xpath, '//*[@id="user_captcha"]').click
|
9349
9467
|
sleep(1)
|
@@ -10846,65 +10964,67 @@ puts '-[√] 캡챠 해제 진행 중 (약 30~60 초 소요됩니다).......'.gr
|
|
10846
10964
|
|
10847
10965
|
sleep(10)
|
10848
10966
|
begin
|
10849
|
-
|
10850
|
-
|
10851
|
-
|
10852
|
-
|
10853
|
-
|
10854
|
-
|
10855
|
-
|
10856
|
-
|
10857
|
-
|
10858
|
-
|
10859
|
-
|
10860
|
-
|
10861
|
-
|
10862
|
-
|
10863
|
-
|
10967
|
+
@driver.find_element(:xpath, '//*[@data-state="error"]').click
|
10968
|
+
puts '-[√] 캡챠 해제 실패 !! API번호 및 포인트를 체크해주세요.......'.red
|
10969
|
+
puts '-[√] 캡챠 해제 실패 !! API번호 및 포인트를 체크해주세요.......'.red
|
10970
|
+
@driver.window_handles.each do |handle|
|
10971
|
+
@driver.switch_to.window(handle)
|
10972
|
+
begin
|
10973
|
+
# 로딩 중이거나, 페이지가 완전히 로딩되지 않더라도 탭을 닫기
|
10974
|
+
@driver.close
|
10975
|
+
rescue Selenium::WebDriver::Error::WebDriverError => e
|
10976
|
+
puts '-[√] 다음 작업 준비로 약 1초~60초 내외 시간이 소요됩니다.......'.red
|
10977
|
+
end
|
10978
|
+
end
|
10979
|
+
#return 0
|
10980
|
+
@driver.quit
|
10981
|
+
sleep(1)
|
10982
|
+
return 0
|
10983
|
+
sleep(1)
|
10864
10984
|
rescue
|
10865
|
-
|
10866
|
-
|
10867
|
-
|
10868
|
-
|
10869
|
-
|
10870
|
-
|
10871
|
-
|
10872
|
-
|
10873
|
-
|
10874
|
-
begin
|
10875
|
-
@driver.find_element(:xpath, '//*[@name="user_captcha"]').click
|
10876
|
-
sleep(1)
|
10877
|
-
@driver.action.key_down(:right).key_up(:right).perform
|
10878
|
-
rescue
|
10985
|
+
# 타임아웃을 77초로 설정
|
10986
|
+
wait = Selenium::WebDriver::Wait.new(:timeout => 150)
|
10987
|
+
# 요소가 나타날 때까지 100초 동안 기다립니다.
|
10988
|
+
wait.until { @driver.find_element(:xpath, '//*[@data-state="solved"]') }
|
10989
|
+
sleep(1)
|
10990
|
+
@driver.find_element(:xpath, '//*[@data-state="solved"]').click
|
10991
|
+
puts '-[√] 캡챠 해제 완료 → 이어서 진행 합니다.......'.green
|
10992
|
+
puts '-[√] 캡챠 해제 완료 → 이어서 진행 합니다>.......'.green
|
10993
|
+
sleep(5)
|
10879
10994
|
begin
|
10880
|
-
@driver.find_element(:xpath, '//*[@
|
10995
|
+
@driver.find_element(:xpath, '//*[@name="user_captcha"]').click
|
10881
10996
|
sleep(1)
|
10882
|
-
|
10997
|
+
@driver.action.key_down(:right).key_up(:right).perform
|
10883
10998
|
rescue
|
10884
10999
|
begin
|
10885
|
-
@driver.find_element(:xpath, '//*[@
|
11000
|
+
@driver.find_element(:xpath, '//*[@id="user_captcha"]').click
|
10886
11001
|
sleep(1)
|
10887
|
-
|
11002
|
+
@driver.action.key_down(:right).key_up(:right).perform
|
10888
11003
|
rescue
|
10889
11004
|
begin
|
10890
|
-
|
10891
|
-
|
10892
|
-
|
10893
|
-
|
10894
|
-
sleep(2)
|
10895
|
-
@driver.execute_script("arguments[0].click();", button)
|
10896
|
-
|
11005
|
+
@driver.find_element(:xpath, '//*[@title="자동글쓰기방지"]').click
|
11006
|
+
sleep(1)
|
11007
|
+
@driver.action.key_down(:right).key_up(:right).perform
|
11008
|
+
rescue
|
10897
11009
|
begin
|
10898
|
-
|
10899
|
-
|
10900
|
-
@driver.
|
10901
|
-
|
11010
|
+
#2차 확인 버튼 있을시
|
11011
|
+
puts '-[√] 캡챠 해제 완료 → 이어서 진행 합니다>>>.......'.green
|
11012
|
+
button = @driver.find_element(:xpath, '//input[@type="button" and @id="captch_button" and @value="확인"]')
|
11013
|
+
@driver.execute_script("arguments[0].scrollIntoView({block: 'center', inline: 'center'})", button)
|
11014
|
+
sleep(2)
|
11015
|
+
@driver.execute_script("arguments[0].click();", button)
|
11016
|
+
|
11017
|
+
begin
|
11018
|
+
wait = Selenium::WebDriver::Wait.new(timeout: 3)
|
11019
|
+
wait.until { @driver.switch_to.alert }
|
11020
|
+
@driver.switch_to.alert.accept
|
11021
|
+
rescue
|
11022
|
+
end
|
11023
|
+
rescue
|
10902
11024
|
end
|
10903
|
-
rescue
|
10904
11025
|
end
|
10905
11026
|
end
|
10906
11027
|
end
|
10907
|
-
end
|
10908
11028
|
sleep(1)
|
10909
11029
|
end
|
10910
11030
|
rescue
|
@@ -11679,7 +11799,9 @@ rescue => e
|
|
11679
11799
|
end
|
11680
11800
|
#return 0
|
11681
11801
|
@driver.quit
|
11682
|
-
|
11802
|
+
sleep(1)
|
11803
|
+
return 0
|
11804
|
+
sleep(1)
|
11683
11805
|
end
|
11684
11806
|
|
11685
11807
|
|
@@ -11698,6 +11820,10 @@ end
|
|
11698
11820
|
# 2. 내용에 감자 단어 사용이 제한되어 있습니다 형식
|
11699
11821
|
elsif alert_text =~ /내용에\s+(.+?)\s+단어 사용이 제한/
|
11700
11822
|
banned_word = $1
|
11823
|
+
|
11824
|
+
# 3. "금지단어"는..형식
|
11825
|
+
elsif alert_text =~ /"(.+?)"\s*는/
|
11826
|
+
banned_word = $1
|
11701
11827
|
end
|
11702
11828
|
|
11703
11829
|
if banned_word
|
@@ -11735,26 +11861,33 @@ end #반복루프
|
|
11735
11861
|
|
11736
11862
|
|
11737
11863
|
begin
|
11864
|
+
# log 디렉토리가 없다면 생성
|
11865
|
+
Dir.mkdir('./log') unless Dir.exist?('./log')
|
11866
|
+
|
11738
11867
|
posting_url = @driver.current_url
|
11739
|
-
|
11740
|
-
|
11741
|
-
|
11742
|
-
|
11743
|
-
|
11744
|
-
|
11745
|
-
|
11746
|
-
|
11747
|
-
|
11748
|
-
|
11749
|
-
|
11868
|
+
|
11869
|
+
# 오늘 날짜로 파일명 생성
|
11870
|
+
today_str = Date.today.strftime("%Y-%m-%d")
|
11871
|
+
file_path = "./log/#{today_str}-posting_log.txt"
|
11872
|
+
|
11873
|
+
File.open(file_path, 'a') do |ff|
|
11874
|
+
ff.write('[')
|
11875
|
+
ff.write(DateTime.now.strftime("%Y년%m월%d일 %H시%M분"))
|
11876
|
+
ff.write(']')
|
11877
|
+
ff.write(user_id)
|
11878
|
+
ff.write(',')
|
11879
|
+
ff.write(user_pw)
|
11880
|
+
ff.write(',')
|
11881
|
+
ff.write(posting_url)
|
11882
|
+
|
11883
|
+
if alert_text
|
11750
11884
|
ff.write(' ▶')
|
11751
11885
|
ff.write("팝업내용: #{alert_text}")
|
11752
|
-
|
11886
|
+
end
|
11753
11887
|
|
11754
|
-
|
11755
|
-
|
11756
|
-
|
11757
|
-
end
|
11888
|
+
ff.write("\n")
|
11889
|
+
puts '-[√] 로그 파일 기록 완료.......'.yellow
|
11890
|
+
end
|
11758
11891
|
rescue
|
11759
11892
|
end
|
11760
11893
|
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: posting_zon
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.96.999
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- zon
|
8
8
|
bindir: bin
|
9
9
|
cert_chain: []
|
10
|
-
date: 2025-05-
|
10
|
+
date: 2025-05-28 00:00:00.000000000 Z
|
11
11
|
dependencies: []
|
12
12
|
description: posting app
|
13
13
|
email: mymin26@naver.com
|