Faraday: ํŒจ๋Ÿฌ๋ฐ์ด::์˜ค๋ฅ˜::์—ฐ๊ฒฐ ์‹คํŒจ

์— ๋งŒ๋“  2019๋…„ 02์›” 27์ผ  ยท  4์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: lostisland/faraday

์ตœ์ข… ์˜ค๋ฅ˜๊ฐ€ ํŒจ๋Ÿฌ๋ฐ์ด๋ฅผ ์ฐธ์กฐํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ณด๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฏธ ์ด ๋ฌธ์ œ๋ฅผ Kickscraper์— ๋ณด๊ณ ํ–ˆ์ง€๋งŒ Kickscraper ์Šคํฌ๋ฆฝํŠธ( https://github.com/markolson/kickscraper/issues/47)์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๊ณ  ๋ฏฟ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๊ฐ€ Faraday์™€ ๊ด€๋ จ์ด ์—†๋Š” ๊ฒฝ์šฐ ์ฃ„์†กํ•˜์ง€๋งŒ ์ด ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋Š” ๋„์›€์ด๋‚˜ ํ†ต์ฐฐ๋ ฅ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ์ •๋ณด

  • ํŒจ๋Ÿฌ๋ฐ์ด ๋ฒ„์ „: 0.8.11
  • ํŒจ๋Ÿฌ๋ฐ์ด ๋ฏธ๋“ค์›จ์–ด ๋ฒ„์ „: 0.13.1
  • ๋ฃจ๋น„ ๋ฒ„์ „: 2.6.1

๋ฌธ์ œ ์„ค๋ช…

C:\Program Files\Ruby\Ruby26\lib\ruby\gems\2.6.0\gems\kickscraper-0.2.4>rake console
fatal: not a git repository (or any of the parent directories): .git
irb(main):001:0> c = Kickscraper.client
Traceback (most recent call last):
       16: from C:/Program Files/Ruby/Ruby26/lib/ruby/gems/2.6.0/gems/faraday-0.8.11/lib/faraday/request/url_encoded.rb:14:in `call'
       15: from C:/Program Files/Ruby/Ruby26/lib/ruby/gems/2.6.0/gems/faraday-0.8.11/lib/faraday/response.rb:8:in `call'
       14: from C:/Program Files/Ruby/Ruby26/lib/ruby/gems/2.6.0/gems/faraday_middleware-0.13.1/lib/faraday_middleware/response/follow_redirects.rb:75:in `call'
       13: from C:/Program Files/Ruby/Ruby26/lib/ruby/gems/2.6.0/gems/faraday_middleware-0.13.1/lib/faraday_middleware/response/follow_redirects.rb:87:in `perform_with_redirection'
       12: from C:/Program Files/Ruby/Ruby26/lib/ruby/gems/2.6.0/gems/faraday_middleware-0.13.1/lib/faraday_middleware/response_middleware.rb:31:in `call'
       11: from C:/Program Files/Ruby/Ruby26/lib/ruby/gems/2.6.0/gems/kickscraper-0.2.4/lib/kickscraper/connection.rb:25:in `call'
       10: from C:/Program Files/Ruby/Ruby26/lib/ruby/gems/2.6.0/gems/faraday-0.8.11/lib/faraday/adapter/net_http.rb:39:in `call'
        9: from C:/Program Files/Ruby/Ruby26/lib/ruby/gems/2.6.0/gems/faraday-0.8.11/lib/faraday/adapter/net_http.rb:76:in `perform_request'
        8: from C:/Program Files/Ruby/Ruby26/lib/ruby/2.6.0/net/http.rb:1470:in `request'
        7: from C:/Program Files/Ruby/Ruby26/lib/ruby/2.6.0/net/http.rb:919:in `start'
        6: from C:/Program Files/Ruby/Ruby26/lib/ruby/2.6.0/net/http.rb:930:in `do_start'
        5: from C:/Program Files/Ruby/Ruby26/lib/ruby/2.6.0/net/http.rb:945:in `connect'
        4: from C:/Program Files/Ruby/Ruby26/lib/ruby/2.6.0/timeout.rb:103:in `timeout'
        3: from C:/Program Files/Ruby/Ruby26/lib/ruby/2.6.0/timeout.rb:93:in `block in timeout'
        2: from C:/Program Files/Ruby/Ruby26/lib/ruby/2.6.0/net/http.rb:946:in `block in connect'
        1: from C:/Program Files/Ruby/Ruby26/lib/ruby/2.6.0/net/http.rb:949:in `rescue in block in connect'
Faraday::Error::ConnectionFailed (Failed to open TCP connection to localhost:8888 (No connection could be made because the target machine actively refused it. - connect(2) for "localhost" port 8888))

์žฌํ˜„ ๋‹จ๊ณ„

๋ฃจ๋น„ ์„ค์น˜:

rubyinstaller-2.6.1-1-x86.exe installed to 'C:\Program Files\Ruby\Ruby26'

๋ณด์„ ์„ค์น˜:
C:\Program Files\Ruby\gems\. ๋กœ rubygems-3.0.2.zip์„ ์ถ”์ถœํ–ˆ์Šต๋‹ˆ๋‹ค.
cd C:\Program Files\Ruby\rubygems\3.0.2 && ..\..\Ruby26\bin\ruby.exe setup.rb ๋กœ ์„ค์น˜๋จ

ํ‚ฅ์Šคํฌ๋ ˆ์ดํผ ์„ค์น˜:

'C:\Program Files\Ruby\Ruby26\bin\gem' install kickscraper
Fetching faraday_middleware-0.13.1.gem
Fetching faraday-0.8.11.gem
Fetching multipart-post-1.2.0.gem
Fetching kickscraper-0.2.4.gem
Fetching multi_json-1.13.1.gem
Fetching uri-query_params-0.7.1.gem
Fetching hashie-2.1.2.gem
Successfully installed multipart-post-1.2.0
Successfully installed faraday-0.8.11
Successfully installed faraday_middleware-0.13.1
Successfully installed multi_json-1.13.1
Successfully installed hashie-2.1.2
Successfully installed uri-query_params-0.7.1
Successfully installed kickscraper-0.2.4
Parsing documentation for multipart-post-1.2.0
Installing ri documentation for multipart-post-1.2.0
Parsing documentation for faraday-0.8.11
Installing ri documentation for faraday-0.8.11
Parsing documentation for faraday_middleware-0.13.1
Installing ri documentation for faraday_middleware-0.13.1
Parsing documentation for multi_json-1.13.1
Installing ri documentation for multi_json-1.13.1
Parsing documentation for hashie-2.1.2
Installing ri documentation for hashie-2.1.2
Parsing documentation for uri-query_params-0.7.1
Installing ri documentation for uri-query_params-0.7.1
Parsing documentation for kickscraper-0.2.4
Installing ri documentation for kickscraper-0.2.4
Done installing documentation for multipart-post, faraday, faraday_middleware, m
ulti_json, hashie, uri-query_params, kickscraper after 74 seconds
7 gems installed

Kickscraper ์‹คํ–‰:

C:\Program Files\Ruby\Ruby26\lib\ruby\gems\2.6.0\gems\kickscraper-0.2.4>rake console
irb(main):001:0> c = Kickscraper.client

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์ฝ”๋“œ๋ฒ ์ด์Šค์—์„œ ์™„์ „ํžˆ ๋ฒ—์–ด๋‚œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋„ˆํฌ๋“ค์€ ๊ต‰์žฅํ•˜๊ณ  ๋น ๋ฅด๋‹ค!

2019๋…„ 2์›” 27์ผ ์˜ค์ „ 7์‹œ 18๋ถ„์— Olle Jonsson [email protected] ์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

ํ์‡„ #886.

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ฑฐ๋‚˜ GitHub์—์„œ ๋ณด๊ฑฐ๋‚˜ ์Šค๋ ˆ๋“œ๋ฅผ ์Œ์†Œ๊ฑฐํ•˜์„ธ์š”.

๋ชจ๋“  4 ๋Œ“๊ธ€

์•ˆ๋…•ํ•˜์„ธ์š” @mattmill30 ๋‹˜ , ๋‹น์‹ ์ด ๋ฐ›๋Š” ์˜ค๋ฅ˜๋Š” ์•„์ฃผ ๋ถ„๋ช…ํ•ฉ๋‹ˆ๋‹ค:

Faraday::Error::ConnectionFailed (Failed to open TCP connection to localhost:8888 (No connection could be made because the target machine actively refused it. - connect(2) for "localhost" port 8888))

๋ถ„๋ช…ํžˆ Kickscraper.client ๋Š” ์„œ๋ฒ„๊ฐ€ 8888 ํฌํŠธ์—์„œ ์ปดํ“จํ„ฐ์—์„œ ์ˆ˜์‹  ๋Œ€๊ธฐํ•  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•˜์ง€๋งŒ ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๊ทธ๊ฒƒ์ด ์œ ์ผํ•œ ๋ฌธ์ œ๋ผ๋ฉด localhost:8888 ์—์„œ ์ˆ˜์‹  ๋Œ€๊ธฐํ•˜๋Š” ์„œ๋ฒ„๊ฐ€ ์—†๋Š” ๊ฒƒ ๊ฐ™๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์ด Faraday์˜ ๋ฒ„๊ทธ๊ฐ€ ์•„๋‹Œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์Šคํƒ ์ถ”์ ์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋“ฏ์ด ๋งˆ์ง€๋ง‰ ํ˜ธ์ถœ์€

1: from C:/Program Files/Ruby/Ruby26/lib/ruby/2.6.0/net/http.rb:949:in `rescue in block in connect'

๋”ฐ๋ผ์„œ Faraday์˜ ๊ด€์ ์—์„œ ์š”์ฒญ์€ ์–ด๋Œ‘ํ„ฐ(์ด ๊ฒฝ์šฐ Net::HTTP )๋กœ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ „๋‹ฌ๋˜์ง€๋งŒ ์ˆ˜ํ–‰ํ•˜๋Š” ๋™์•ˆ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
Faraday ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์ด์œ ๋Š” ๋‚˜์ค‘์— ์–ด๋Œ‘ํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ•œ ๊ฒฝ์šฐ ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•  ํ•„์š”๊ฐ€ ์—†๋„๋ก ์–ด๋Œ‘ํ„ฐ ์˜ˆ์™ธ๋ฅผ ๊ตฌ์ถœํ•˜๊ณ  ๋ž˜ํ•‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ํŒจ๋Ÿฌ๋ฐ์ด์— ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋‹ค๋Š” ์˜๋ฏธ๋Š” ์•„๋‹™๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ด๊ฒƒ์ด ํ”„๋ก์‹œ ๋ฌธ์ œ์ฒ˜๋Ÿผ ๋ณด์ธ๋‹ค๋Š” @benrugg ์˜ ๋ง์— ๋™์˜ํ•ฉ๋‹ˆ๋‹ค.
Kickscraper.proxy ์— ์ „ํ™”๋ฅผ ๊ฑธ์–ด ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
Kickscraper (์œผ)๋กœ ๋‹ค์‹œ ๋ณด๋‚ด๋“œ๋ ค ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์œ„์—์„œ ๊ฐ•์กฐํ•œ ์ด์œ ๋กœ Faraday์˜ ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ๋ผ๋Š” ์ ์— ๋งค์šฐ ๋งŒ์กฑํ•ฉ๋‹ˆ๋‹ค.

@iMacTia ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. 'c = Kickscraper.proxy'๋ฅผ ์‹คํ–‰ํ–ˆ๋Š”๋ฐ " https://localhost :8888"์ด ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค.

ํ”„๋ก์‹œ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

@mattmill30 ์ด ๋ฌธ์ œ๋ฅผ ์ข…๋ฃŒํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค(Faraday ํ”„๋กœ์ ํŠธ์˜ ์ผ๋ถ€๊ฐ€ ์•„๋‹˜).

๋‹ค์Œ์€ ํ”„๋กœ์ ํŠธ์˜ ํ”„๋ก์‹œ ์„ค์ •์— ๋Œ€ํ•œ ๋ช‡ ๊ฐ€์ง€ ์ฐธ๊ณ  ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค.

Kickscraper.configure ๋ธ”๋ก์—๋Š” ํด๋ผ์ด์–ธํŠธ ๊ตฌ์„ฑ ํ–‰์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ตฌ์„ฑ ์ค‘ ํ•˜๋‚˜๋Š” proxy ์ž…๋‹ˆ๋‹ค. ์›์ฒœ

Kickscraper.configure do |config|
  config.email = '[email protected]'
  config.password = 'This is not my real password. Seriously.'
  config.proxy = nil
end

config.proxy = nil ๋˜๋Š” config.proxy = "" ๋กœ ์„ค์ •ํ•˜์‹ญ์‹œ์˜ค.

๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์Šคํฌ๋ฆฝํŠธ์—์„œ LOCAL_PROXY ์ƒ์ˆ˜๋ฅผ ์ฐพ์•„ ์„ค์ • ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค .

์„ค์ •๋˜๋Š” ์˜ˆ:
https://github.com/markolson/kickscraper/blob/cef996ae73ef3166703d0cb9e452482cb5695c1a/spec/test_constants.rb

๋„์›€์ด ๋˜์—ˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค!

์ฝ”๋“œ๋ฒ ์ด์Šค์—์„œ ์™„์ „ํžˆ ๋ฒ—์–ด๋‚œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋„ˆํฌ๋“ค์€ ๊ต‰์žฅํ•˜๊ณ  ๋น ๋ฅด๋‹ค!

2019๋…„ 2์›” 27์ผ ์˜ค์ „ 7์‹œ 18๋ถ„์— Olle Jonsson [email protected] ์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

ํ์‡„ #886.

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ฑฐ๋‚˜ GitHub์—์„œ ๋ณด๊ฑฐ๋‚˜ ์Šค๋ ˆ๋“œ๋ฅผ ์Œ์†Œ๊ฑฐํ•˜์„ธ์š”.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰