webg 0.1.1 → 0.2.0
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/exe/webg +36 -4
- data/lib/webg/version.rb +1 -1
- 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: d0da83b75f201d6de0298ee4e5476b7938a168dc854d124176b32b2de787c0a3
|
4
|
+
data.tar.gz: 03e37742164d66ecdded90049451bfe53454508a3db4e4dd2fa08b53a7740c73
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: db0bac63d91251461323b2c058dca1e8f55c787246c0bedd698051dbabf1fc41f1317e8a38a8f48674bc03aff12dfde7127764d0cc9bb1643d78a940599c5b22
|
7
|
+
data.tar.gz: 9289f3b9f16f436479d64c692013369492ab6cd3a5487ad5044546e7f18269c6073195e079885480af66ee0833f736b35c5f9433e2f0988d48cad361d6888d5b
|
data/exe/webg
CHANGED
@@ -11,13 +11,24 @@ module Fetcher
|
|
11
11
|
end
|
12
12
|
|
13
13
|
class Fetcher::Raw
|
14
|
+
DEFAULT_USER_AGENT = "webg/#{Webg::VERSION}"
|
15
|
+
|
16
|
+
def initialize(headers)
|
17
|
+
@headers = headers
|
18
|
+
end
|
19
|
+
|
14
20
|
def call(uri)
|
15
21
|
require("open-uri")
|
16
|
-
return uri.read
|
22
|
+
return uri.read({"User-Agent" => DEFAULT_USER_AGENT}.merge(@headers))
|
17
23
|
end
|
18
24
|
end
|
19
25
|
|
20
26
|
class Fetcher::Firefox
|
27
|
+
def initialize(headers)
|
28
|
+
return if headers.empty?
|
29
|
+
raise "specifying headers on Firefox is not supported"
|
30
|
+
end
|
31
|
+
|
21
32
|
def call(uri)
|
22
33
|
require("capybara")
|
23
34
|
session = Capybara::Session.new(:selenium_headless)
|
@@ -65,6 +76,7 @@ end
|
|
65
76
|
def parse_options(argv)
|
66
77
|
argv = argv.dup
|
67
78
|
fetcher = :raw
|
79
|
+
headers = {}
|
68
80
|
css_selectors = []
|
69
81
|
text = false
|
70
82
|
|
@@ -79,6 +91,26 @@ def parse_options(argv)
|
|
79
91
|
) do
|
80
92
|
fetcher = :firefox
|
81
93
|
end
|
94
|
+
parser.on(
|
95
|
+
"--user-agent=USER-AGENT",
|
96
|
+
"specify User-Agent header",
|
97
|
+
) do |ua|
|
98
|
+
headers["User-Agent"] = ua
|
99
|
+
end
|
100
|
+
parser.on(
|
101
|
+
"--referer=REFERER",
|
102
|
+
"specify Referer header",
|
103
|
+
) do |referer|
|
104
|
+
headers["Referer"] = referer
|
105
|
+
end
|
106
|
+
parser.on(
|
107
|
+
"--header=HEADER-LINE",
|
108
|
+
"specify various headers in HTTP request. e.g: --header='Accept-Language: ja'"
|
109
|
+
) do |header_line|
|
110
|
+
md = /:\s+/.match(header_line)
|
111
|
+
raise "cannot parse header-line(#{header_line})" if !md
|
112
|
+
headers[md.pre_match] = md.post_match
|
113
|
+
end
|
82
114
|
parser.on(
|
83
115
|
"--css-selector=SELECTOR",
|
84
116
|
"specify css selector to filter output.",
|
@@ -100,13 +132,13 @@ def parse_options(argv)
|
|
100
132
|
end
|
101
133
|
uri = URI(uri)
|
102
134
|
|
103
|
-
return uri, fetcher, css_selectors, text
|
135
|
+
return uri, fetcher, headers, css_selectors, text
|
104
136
|
end
|
105
137
|
|
106
138
|
begin
|
107
|
-
uri, fetcher_name, css_selectors, text = parse_options(ARGV)
|
139
|
+
uri, fetcher_name, headers, css_selectors, text = parse_options(ARGV)
|
108
140
|
|
109
|
-
fetcher = Fetcher.const_get(fetcher_name.capitalize).new
|
141
|
+
fetcher = Fetcher.const_get(fetcher_name.capitalize).new(headers)
|
110
142
|
selector = css_selectors.empty? ? Selector::All.new : Selector::Css.new(css_selectors)
|
111
143
|
output_method_name = text ? :text : :raw
|
112
144
|
|
data/lib/webg/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: webg
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yuya.Nishida.
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-05-
|
11
|
+
date: 2021-05-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: capybara
|