indeed_scraper2022 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/lib/indeed_scraper2022.rb +24 -11
- data.tar.gz.sig +0 -0
- metadata +3 -3
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 19d85a0b62308f9e6c53eda22a9b26fb559e62d9528597fde6d89bb117f0deb0
|
4
|
+
data.tar.gz: 43aea0e9efb6d6ed45c1efe4e480d8422939d20f42cd5b8514f8733b6f3ebd03
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bf0592ffdbaf9dbba2e84be8dcbdbf18c1d8fcb25e0e33eacbbb786decb0f8d18240371149ef9850bbde890e5b64893660f2ad2e0d149cb5e40e900802d82bb4
|
7
|
+
data.tar.gz: 60e00efcef2f86e6e64c8f02d45e943ab5cdc1090b3d361f3d6e305b4389694a6061618da693dee1d81b11dbe729f02786c06e71562b10d581b88503189f676a
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/lib/indeed_scraper2022.rb
CHANGED
@@ -44,7 +44,7 @@ class IndeedScraper2022
|
|
44
44
|
# jobsearch (e.g. Full Stack Website Developer (Wordpress))
|
45
45
|
jobtitle = div2.element("div[@class='jobsearch-JobInfoHead" \
|
46
46
|
"er-title-container']/h1[@class='jobsearch-JobInfoHead" \
|
47
|
-
"er-title']")
|
47
|
+
"er-title']")&.text
|
48
48
|
|
49
49
|
div3 = div2.element("div[@class='jobsearch-CompanyInfoCon" \
|
50
50
|
"tainer']/div[@class='jobsearch-CompanyInfoWithoutHead" \
|
@@ -70,15 +70,14 @@ class IndeedScraper2022
|
|
70
70
|
# jobsearch (e.g. Urgently needed)
|
71
71
|
jobnote1 = e0.element("//div[@class='jobsearch-DesktopTag" \
|
72
72
|
"']/div[@class='urgently-hiring']/div[@class='jobsearc" \
|
73
|
-
"h-DesktopTag-text']")
|
74
|
-
jobnote1 = jobnote1.text if jobnote1
|
73
|
+
"h-DesktopTag-text']")&.text
|
75
74
|
|
76
75
|
# jobsearch (e.g. 10 days ago)
|
77
76
|
datepost = e0.element("//div[@class='jobsearch-JobTab-con" \
|
78
|
-
"tent']/div[@class='jobsearch-JobMetadataFooter']/div")
|
77
|
+
"tent']/div[@class='jobsearch-JobMetadataFooter']/div")&.text
|
79
78
|
|
80
79
|
jobdesc = e0.element("//div[@class='icl-u-xs-mt--md']/div[@cl" \
|
81
|
-
"ass='jobsearch-jobDescriptionText']")
|
80
|
+
"ass='jobsearch-jobDescriptionText']").xml
|
82
81
|
|
83
82
|
{
|
84
83
|
title: jobtitle,
|
@@ -120,28 +119,28 @@ class IndeedScraper2022
|
|
120
119
|
|
121
120
|
# job title (e.g. Software Developer)
|
122
121
|
jobtitle = td.element("div[@class='tapItem-gutter']/h2[@" \
|
123
|
-
"class='jobTitle-color-purple']/span")
|
122
|
+
"class='jobTitle-color-purple']/span")&.text
|
124
123
|
puts 'jobtitle: ' + jobtitle.inspect if @debug
|
125
124
|
|
126
125
|
salary = td.element("div[@class='metadataContainer']/" \
|
127
126
|
"div[@class='salary-snippet-container']/div[@class='sa" \
|
128
|
-
"lary-snippet']/span")
|
129
|
-
|
127
|
+
"lary-snippet']/span")&.text
|
128
|
+
|
130
129
|
puts 'salary: ' + salary.inspect if @debug
|
131
130
|
div1 = td.element("div[@class='companyInfo']")
|
132
131
|
|
133
132
|
# company name (e.g. Coda Octopus Products Ltd)
|
134
|
-
company_name = div1.element("span[@class='companyName']")
|
133
|
+
company_name = div1.element("span[@class='companyName']")&.text
|
135
134
|
|
136
135
|
# company location (e.g. Edinburgh)
|
137
|
-
location = div1.element("div[@class='companyLocation']")
|
136
|
+
location = div1.element("div[@class='companyLocation']")&.text
|
138
137
|
tbody = div.element("table[@class='jobCardShelfContainer']/tbody")
|
139
138
|
|
140
139
|
div3 = tbody.element("tr[@class='underShelfFooter']/td/di" \
|
141
140
|
"v[@class='result-footer']")
|
142
141
|
|
143
142
|
# job (e.g. Our products are primarily written in C#, using...)
|
144
|
-
jobsnippet = div3.
|
143
|
+
jobsnippet = div3.xpath("div[@class='job-snippet']/ul/li/text()").join("\n")
|
145
144
|
|
146
145
|
# visually (e.g. Posted 14 days ago)
|
147
146
|
dateposted = div3.element("span[@class='date']").texts
|
@@ -162,4 +161,18 @@ class IndeedScraper2022
|
|
162
161
|
end
|
163
162
|
end
|
164
163
|
|
164
|
+
class IS22Plus < IndeedScraper2022
|
165
|
+
|
166
|
+
def initialize(q: '', location: '', debug: false)
|
167
|
+
super(q: q, location: location, debug: debug)
|
168
|
+
end
|
169
|
+
|
170
|
+
def list()
|
165
171
|
|
172
|
+
@results.map.with_index do |x,i|
|
173
|
+
"%2d. %s" % [i,x[:title]]
|
174
|
+
end.join("\n")
|
175
|
+
|
176
|
+
end
|
177
|
+
|
178
|
+
end
|
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: indeed_scraper2022
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Robertson
|
@@ -78,7 +78,7 @@ dependencies:
|
|
78
78
|
- !ruby/object:Gem::Version
|
79
79
|
version: 2.8.4
|
80
80
|
description:
|
81
|
-
email:
|
81
|
+
email: digital.robertson@Gmail.com
|
82
82
|
executables: []
|
83
83
|
extensions: []
|
84
84
|
extra_rdoc_files: []
|
@@ -96,7 +96,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
96
96
|
requirements:
|
97
97
|
- - ">="
|
98
98
|
- !ruby/object:Gem::Version
|
99
|
-
version:
|
99
|
+
version: 2.3.0
|
100
100
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
101
101
|
requirements:
|
102
102
|
- - ">="
|
metadata.gz.sig
CHANGED
Binary file
|