posting_zon 0.0.20 → 0.0.25
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 +115 -107
- 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: 6a06373e423555fc76d617436954c3f1d75868de7ac37fcbe1537de15998e8b5
|
4
|
+
data.tar.gz: 5ea1a01e77f29e58009dde7a5006a9af38b75307c17e44b58e021dd0daad2473
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bd005a21fa2654f6b68c7953ce5f53d33aa692bac3a1b4100a56f2ae5d5fb4552d211fbd9cf15885e9f3c963a765e9c321a7401ef77edc22fda06eebc95a65da
|
7
|
+
data.tar.gz: c8c862721ed7fa200f23e1a565c304b18d14ccb1bea38139fb54f745be30d57c794d4fd17fbca056a9b607525d1793fd3ef7abe81dba84e92273d93b4ada77d1
|
data/lib/posting_zon.rb
CHANGED
@@ -30,115 +30,123 @@ require 'watir'
|
|
30
30
|
#driver.find_element(:class_name, 'highlight-java')
|
31
31
|
|
32
32
|
class Naver
|
33
|
-
|
34
|
-
def chrome_start(proxy)
|
35
|
-
if proxy == ''
|
36
|
-
begin
|
37
|
-
#Selenium::WebDriver::Chrome::Service.driver_path = './chromedriver.exe'
|
38
|
-
|
39
|
-
options = Selenium::WebDriver::Chrome::Options.new #(options: {"excludeSwitches" => ["enable-automation"]}) #자동화된 테스트...제거(options: {"excludeSwitches" => ["enable-automation"]})
|
40
|
-
options.add_extension('./crx/free.crx')
|
41
|
-
options.add_extension('./crx/app.crx')
|
42
|
-
|
43
|
-
options.add_argument('--start-maximized')
|
44
|
-
options.add_argument('user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.6723.59 Safari/537.36') # user-agent 위조
|
45
|
-
options.add_argument('--disable-blink-features=AutomationControlled') #자동화된 환경에서 실행되는 것을 감지하는 기능을 비활성화합니다.
|
46
|
-
options.add_argument('--ignore-certificate-errors') #SSL 인증서 오류를 무시하도록 설정합니다
|
47
|
-
options.add_argument('--disable-web-security') #웹 보안을 비활성화합니다
|
48
|
-
options.add_argument('--allow-running-insecure-content') #HTTPS 사이트에서 HTTP 컨텐츠를 실행할 수 있도록 허용합니다.
|
49
|
-
options.add_argument('--no-sandbox') #Chrome에서 샌드박스 모드를 비활성화합니다.
|
50
|
-
|
51
|
-
# 자동화된 테스트 제거
|
52
|
-
options.exclude_switches = ['enable-automation']
|
53
|
-
|
54
|
-
options.add_preference("profile.password_manager_enabled", false) # 비밀번호 관리자 비활성화
|
55
|
-
options.add_preference("credentials_enable_service", false) # 비밀번호 저장 기능 비활성화
|
56
|
-
#options.add_preference("profile.managed_default_content_settings.cookies", 2) # 쿠키 관련 팝업 차단
|
57
|
-
options.add_preference("profile.default_content_setting_values.notifications", 2) # 알림 차단
|
58
|
-
options.add_argument("--disable-save-password-bubble") # 비밀번호 저장 팝업 차단
|
59
|
-
# `capabilities` 사용
|
60
|
-
capabilities = [options]
|
61
|
-
|
62
|
-
# 드라이버 초기화 (capabilities 사용)
|
63
|
-
@driver = Selenium::WebDriver.for(:chrome, capabilities: capabilities)
|
64
|
-
|
65
|
-
rescue
|
66
|
-
# `capabilities` 사용
|
67
|
-
capabilities = [options]
|
68
33
|
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
capabilities = [options]
|
136
|
-
|
137
|
-
# 드라이버 초기화 (capabilities 사용)
|
138
|
-
@driver = Selenium::WebDriver.for(:chrome, capabilities: capabilities)
|
139
|
-
end
|
140
|
-
end
|
34
|
+
def chrome_start(proxy)
|
35
|
+
# ChromeDriver 경로 수동 지정
|
36
|
+
chromedriver_path = './chromedriver.exe'
|
37
|
+
|
38
|
+
# 웹드라이버 자동 업데이트 시도
|
39
|
+
begin
|
40
|
+
# webdrivers가 사용자의 Chrome 버전에 맞는 chromedriver 다운로드 시도
|
41
|
+
Webdrivers::Chromedriver.update # 자동 업데이트 시도
|
42
|
+
rescue => e
|
43
|
+
puts "webdrivers에서 chromedriver 다운로드 실패: #{e.message}"
|
44
|
+
puts " 자동으로 chromedriver.exe 사용합니다."
|
45
|
+
puts "만일 프로그램 폴더안에 chromedriver.exe 버전이 맞지 않거나 없는 경우"
|
46
|
+
puts "https://storage.googleapis.com/chrome-for-testing-public/사용자크롬버전/win32/chromedriver-win32.zip 링크를 복사 후 복사 된 링크 중(사용자크롬버전) 부분을 크롬 사용자의 버전(예:131.0.6778.264)으로 수정 후 주소입력 부분에 넣어 엔터 후 다운로드 하고 압축을 풀고 chromedriver.exe 파일만 프로그램 폴더안에 넣어주세요."
|
47
|
+
# 예외가 발생하면 수동 경로 사용
|
48
|
+
Selenium::WebDriver::Chrome::Service.driver_path = chromedriver_path
|
49
|
+
end
|
50
|
+
|
51
|
+
if proxy == ''
|
52
|
+
begin
|
53
|
+
# Chrome 옵션 설정
|
54
|
+
options = Selenium::WebDriver::Chrome::Options.new
|
55
|
+
options.add_extension('./crx/free.crx')
|
56
|
+
options.add_extension('./crx/app.crx')
|
57
|
+
options.add_argument('--disable-gpu')
|
58
|
+
options.add_argument('--start-maximized')
|
59
|
+
options.add_argument('user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.6723.59 Safari/537.36') # user-agent 위조
|
60
|
+
options.add_argument('--disable-blink-features=AutomationControlled') # 자동화된 환경에서 실행되는 것을 감지하는 기능을 비활성화합니다.
|
61
|
+
options.add_argument('--ignore-certificate-errors') # SSL 인증서 오류 무시
|
62
|
+
options.add_argument('--disable-web-security') # 웹 보안 비활성화
|
63
|
+
options.add_argument('--allow-running-insecure-content') # HTTPS 사이트에서 HTTP 컨텐츠 실행 허용
|
64
|
+
options.add_argument('--no-sandbox') # 샌드박스 모드 비활성화
|
65
|
+
|
66
|
+
options.exclude_switches = ['enable-automation'] # 자동화 테스트 제거
|
67
|
+
options.add_preference("profile.password_manager_enabled", false) # 비밀번호 관리자 비활성화
|
68
|
+
options.add_preference("credentials_enable_service", false) # 비밀번호 저장 기능 비활성화
|
69
|
+
options.add_preference("profile.default_content_setting_values.notifications", 2) # 알림 차단
|
70
|
+
options.add_argument("--disable-save-password-bubble") # 비밀번호 저장 팝업 차단
|
71
|
+
|
72
|
+
# 드라이버 초기화
|
73
|
+
capabilities = [options]
|
74
|
+
@driver = Selenium::WebDriver.for(:chrome, capabilities: capabilities)
|
75
|
+
rescue => e
|
76
|
+
puts "Error during initialization: #{e.message}"
|
77
|
+
# 예외 발생 시, 수동으로 chromedriver 경로 설정
|
78
|
+
Selenium::WebDriver::Chrome::Service.driver_path = chromedriver_path
|
79
|
+
options = Selenium::WebDriver::Chrome::Options.new
|
80
|
+
options.add_extension('./crx/free.crx')
|
81
|
+
options.add_extension('./crx/app.crx')
|
82
|
+
options.add_argument('--disable-gpu')
|
83
|
+
options.add_argument('--start-maximized')
|
84
|
+
options.add_argument('user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.6723.59 Safari/537.36')
|
85
|
+
options.add_argument('--disable-blink-features=AutomationControlled')
|
86
|
+
options.add_argument('--ignore-certificate-errors')
|
87
|
+
options.add_argument('--disable-web-security')
|
88
|
+
options.add_argument('--allow-running-insecure-content')
|
89
|
+
options.add_argument('--no-sandbox')
|
90
|
+
|
91
|
+
options.exclude_switches = ['enable-automation']
|
92
|
+
options.add_preference("profile.password_manager_enabled", false)
|
93
|
+
options.add_preference("credentials_enable_service", false)
|
94
|
+
options.add_preference("profile.default_content_setting_values.notifications", 2)
|
95
|
+
options.add_argument("--disable-save-password-bubble")
|
96
|
+
|
97
|
+
# 드라이버 초기화
|
98
|
+
capabilities = [options]
|
99
|
+
@driver = Selenium::WebDriver.for(:chrome, capabilities: capabilities)
|
141
100
|
end
|
101
|
+
else
|
102
|
+
begin
|
103
|
+
puts '프록시 연결합니다.......'.magenta
|
104
|
+
options = Selenium::WebDriver::Chrome::Options.new
|
105
|
+
options.add_argument '--proxy-server=' + proxy.to_s.force_encoding('utf-8').to_s
|
106
|
+
options.add_extension('./crx/free.crx')
|
107
|
+
options.add_extension('./crx/app.crx')
|
108
|
+
options.add_argument('--disable-gpu')
|
109
|
+
options.add_argument('--start-maximized')
|
110
|
+
options.add_argument('user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.6723.59 Safari/537.36')
|
111
|
+
options.add_argument('--disable-blink-features=AutomationControlled')
|
112
|
+
options.add_argument('--ignore-certificate-errors')
|
113
|
+
options.add_argument('--disable-web-security')
|
114
|
+
options.add_argument('--allow-running-insecure-content')
|
115
|
+
options.add_argument('--no-sandbox')
|
116
|
+
|
117
|
+
options.exclude_switches = ['enable-automation']
|
118
|
+
options.add_preference("profile.password_manager_enabled", false)
|
119
|
+
options.add_preference("credentials_enable_service", false)
|
120
|
+
options.add_preference("profile.default_content_setting_values.notifications", 2)
|
121
|
+
options.add_argument("--disable-save-password-bubble")
|
122
|
+
|
123
|
+
capabilities = [options]
|
124
|
+
@driver = Selenium::WebDriver.for(:chrome, capabilities: capabilities)
|
125
|
+
rescue => e
|
126
|
+
puts "Proxy error: #{e.message}"
|
127
|
+
# 예외 발생 시 수동으로 chromedriver 경로 설정
|
128
|
+
Selenium::WebDriver::Chrome::Service.driver_path = chromedriver_path
|
129
|
+
options.add_extension('./crx/free.crx')
|
130
|
+
options.add_extension('./crx/app.crx')
|
131
|
+
options.add_argument('--disable-gpu')
|
132
|
+
options.add_argument('--start-maximized')
|
133
|
+
options.add_argument('user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.6723.59 Safari/537.36')
|
134
|
+
options.add_argument('--disable-blink-features=AutomationControlled')
|
135
|
+
options.add_argument('--ignore-certificate-errors')
|
136
|
+
options.add_argument('--disable-web-security')
|
137
|
+
options.add_argument('--allow-running-insecure-content')
|
138
|
+
options.add_argument('--no-sandbox')
|
139
|
+
|
140
|
+
options.exclude_switches = ['enable-automation']
|
141
|
+
options.add_preference("profile.password_manager_enabled", false)
|
142
|
+
options.add_preference("credentials_enable_service", false)
|
143
|
+
options.add_preference("profile.default_content_setting_values.notifications", 2)
|
144
|
+
options.add_argument("--disable-save-password-bubble")
|
145
|
+
|
146
|
+
capabilities = [options]
|
147
|
+
@driver = Selenium::WebDriver.for(:chrome, capabilities: capabilities)
|
148
|
+
end
|
149
|
+
end
|
142
150
|
end
|
143
151
|
|
144
152
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: posting_zon
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.25
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- zon
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-01-
|
11
|
+
date: 2025-01-10 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: posting app
|
14
14
|
email: mymin26@naver.com
|