Skip to content

Commit 2261db0

Browse files
committed
more serp selectors
1 parent d438aa2 commit 2261db0

15 files changed

+290
-84
lines changed
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
module SerpParser
2+
module Google
3+
module OrganicResults
4+
# Variant matching the same card layout as OrganicResult2.
5+
# Kept separate to satisfy fixtures that expect this class name.
6+
class OrganicResult3 < OrganicResult2
7+
SELECTOR = OrganicResult2::SELECTOR
8+
REQUIRED_CHILDREN = OrganicResult2::REQUIRED_CHILDREN
9+
SCHEMA = OrganicResult2::SCHEMA
10+
end
11+
end
12+
end
13+
end

lib/serp_parser/google/organic_results/organic_result4.rb

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ module OrganicResults
44
class OrganicResult4 < SerpParser::Google::Search
55
include SerpParser::Helpers
66

7-
# Matches the card-style organic result with sitelinks list
7+
# Card-style organic result that may include sitelinks and/or rating
88
SELECTOR = "div.Ww4FFb.vt6azd.xpd.EtOod.pkphOe"
99
REQUIRED_CHILDREN = [ ".F0FGWb" ]
1010

@@ -28,7 +28,10 @@ class OrganicResult4 < SerpParser::Google::Search
2828
]
2929
},
3030
rating: {
31-
type: :instance_method
31+
type: :hash,
32+
parsers: [
33+
SerpParser::Google::OrganicResults::Ratings::Rating3
34+
]
3235
}
3336
}
3437

@@ -43,26 +46,22 @@ def description
4346
end
4447

4548
def url
46-
element = @doc.at_css("a.rTyHce")
47-
return unless element
49+
link = @doc.at_css("a.rTyHce")
50+
return unless link
4851

49-
clean_google_url(element["href"])
52+
href = link["href"]
53+
href = link["ping"].to_s.split(" ").first if href&.start_with?("javascript")
54+
clean_google_url(href)
5055
end
5156

5257
def date
5358
nil
5459
end
5560

56-
def rating
57-
nil
58-
end
59-
6061
def processed_data
6162
SerpParser::Models::OrganicResult.new(**@data)
6263
end
6364
end
6465
end
6566
end
6667
end
67-
68-
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
module SerpParser
2+
module Google
3+
module OrganicResults
4+
module Ratings
5+
class Rating3 < SerpParser::Google::Search
6+
include SerpParser::Helpers
7+
8+
SELECTOR = ".yi40Hd"
9+
10+
SCHEMA = {
11+
score: {
12+
type: :instance_method
13+
},
14+
max_score: {
15+
type: :instance_method
16+
},
17+
number_of_ratings: {
18+
type: :instance_method
19+
}
20+
}
21+
22+
def score
23+
normalize_number(extract_number(@doc.text), decimals: true)
24+
end
25+
26+
def max_score
27+
5
28+
end
29+
30+
def number_of_ratings
31+
nil
32+
end
33+
34+
def processed_data
35+
{
36+
"score" => score,
37+
"max_score" => max_score,
38+
"number_of_ratings" => number_of_ratings
39+
}
40+
end
41+
end
42+
end
43+
end
44+
end
45+
end

lib/serp_parser/google/organic_results/site_links/site_link3.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,4 +33,3 @@ def processed_data
3333
end
3434
end
3535
end
36-

lib/serp_parser/helpers.rb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@ module Helpers
55
# @param text [String]
66
# @return [String]
77
def clean_text(text)
8-
text.gsub(/\s+/, " ").strip
8+
return "" if text.nil?
9+
# Normalize non-breaking spaces to regular spaces before collapsing
10+
text.tr("\u00A0", " ").gsub(/\s+/, " ").strip
911
end
1012

1113
# Extracts a number from a string with a delimiter

spec/files/google/2025-12-23-mobile-middagsfrid-rabattkod.html

Lines changed: 41 additions & 0 deletions
Large diffs are not rendered by default.

spec/files/google/organic_result1/with_ratings_site_links_and_date.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"title": "Spaghetti Carbonara Recipe (with Video) - NYT Cooking",
3-
"description": "This dish is a deli bacon-egg-and-cheese-on-a-roll that has been pasta-fied, fancified, fetishized and turned into an Italian tradition that ...",
3+
"description": "This dish is a deli bacon-egg-and-cheese-on-a-roll that has been pasta-fied, fancified, fetishized and turned into an Italian tradition that ...",
44
"url": "https://cooking.nytimes.com/recipes/12965-spaghetti-carbonara",
55
"domain": "cooking.nytimes.com",
66
"date": "2023-11-08",
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<div class="Ww4FFb vt6azd xpd EtOod pkphOe"><div class="N54PNb BToiNc cvP2Ce" data-snc="QwCfT"><div class="kb0PBd cvP2Ce jGGQ5e" data-snf="x5WNvb" data-snhf="0"><div class="OhZyZc jgWGIe"><a class="rTyHce" role="presentation" href="/url?sa=t&amp;source=web&amp;rct=j&amp;opi=89978449&amp;url=https://klassensval.se/studentrabatt/Middagsfrid/&amp;ved=2ahUKEwj294XMs9ORAxU1PEQIHXzQMH4QFnoECFAQAQ&amp;usg=AOvVaw3T1ZDSRMU_ZIMx-LST6erA" data-ved="2ahUKEwj294XMs9ORAxU1PEQIHXzQMH4QFnoECFAQAQ" data-ctpacw="1"><div data-snf="tyjmbc" style="padding-top:16px;padding-right:16px;padding-left:16px;padding-bottom:6px"><div class="N54PNb BToiNc cvP2Ce"><div class="kb0PBd cvP2Ce" data-snf="aAwcdb" style="padding-bottom:11px"><div class="N54PNb OjFzvd cvP2Ce VDicHc"><div class="kb0PBd cvP2Ce" data-snf="o3iNyc"><span><span class="H9lube"><div class="eqA2re NjwKYd Vwoesf" aria-hidden="true"><img class="XNo5Ab" src="data:image/png;base64,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" style="height:18px;width:18px" alt="" data-csiid="tmFKafbEOLX4kPIP_KDD8Qc_5" data-atf="4"></div></span></span></div><div class="N54PNb BToiNc cvP2Ce" style="flex-grow:1"><div class="kb0PBd cvP2Ce" data-snf="dqs64d"><div class="GkAmnd ZaCDgb RES9jf q8U8x OSrXXb wHYlTd">Klassens Val</div></div><div class="kb0PBd cvP2Ce" data-snf="X87mVe"><span class="nC62wb VndCse z8gr9e ApHyTb OSrXXb yUTMj ob9lvb" role="text">https://klassensval.se</span></div></div><div class="kb0PBd cvP2Ce" data-snf="G0ofyc" style="width:40px"></div></div></div><div class="kb0PBd cvP2Ce" data-snf="GuLy6c"><div class="F0FGWb v7jaNc ynAwRc MBeuO q8U8x" aria-level="3" role="heading"><div role="link"><span>Middagsfrid rabattkod → 50% rabatt på ditt köp i december 2025</span></div></div></div></div></div></a><div class="mb1nxc" style="top:8px;right:0px;width:48px;height:48px"><div jsdata="l7Bhpb;_;tmFKafbEOLX4kPIP_KDD8Qc21" jscontroller="i8S0p" id="atritem-_tmFKafbEOLX4kPIP_KDD8Qc_65" jsslot="" jsaction="rcuQ6b:npT2md;h5M12e" data-ved="2ahUKEwj294XMs9ORAxU1PEQIHXzQMH4Q2esEegQIUBAC"><div class="iTPLzd cB4NFc Aajd3 lUn2nc" style="position:absolute" aria-label="Om resultatet" role="button" tabindex="0"><span class="D6lY4c IjabWd"><span class="xTFaxe z1asCe" style="height:18px;line-height:18px;width:18px"><svg focusable="false" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"></path></svg></span></span></div></div></div></div></div><div class="kb0PBd cvP2Ce A9Y9g" data-snf="nke7rc" data-sncf="1" style="padding-top:2px;padding-right:16px;padding-left:16px;padding-bottom:12px"><div class="VwiC3b yXK7lf tZESfb vMKMLd KbHOTd p4wth r025kc Hdw6tb" style="-webkit-line-clamp:3">Letar du efter en aktiv Middagsfrid rabattkod? Testa några av våra rabattkoder eller studentrabatter som inte kräver studentleg ✓ Få upp till 50% rabatt&nbsp;...</div></div><div style="grid-area:bvRFlf"><div jscontroller="quRSo" class="U3THc" jsdata="Ovtnme;_;tmFKafbEOLX4kPIP_KDD8Qc28" jsaction="rcuQ6b:npT2md"><div jsname="tJHJj" class="jGGQ5e"></div><div jsname="ao5mud"></div><div></div><div style="grid-area:bvRFlf" jsname="LqJ8Lc" class="STJXQd" id="rp_tmFKafbEOLX4kPIP_KDD8Qc_4" data-ved="2ahUKEwj294XMs9ORAxU1PEQIHXzQMH4Q2Z0BegUIgAEQAA"></div></div></div></div></div>
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"title": "Middagsfrid rabattkod → 50% rabatt på ditt köp i december 2025",
3+
"description": "Letar du efter en aktiv Middagsfrid rabattkod? Testa några av våra rabattkoder eller studentrabatter som inte kräver studentleg ✓ Få upp till 50% rabatt ...",
4+
"url": "https://klassensval.se/studentrabatt/Middagsfrid/",
5+
"domain": "klassensval.se",
6+
"position": null,
7+
"date": null,
8+
"rating": null,
9+
"site_links": []
10+
}
11+
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<div class="Ww4FFb vt6azd xpd EtOod pkphOe"><div class="N54PNb BToiNc cvP2Ce" data-snc="Akjnjf"><div class="kb0PBd cvP2Ce jGGQ5e" data-snf="x5WNvb" data-snhf="0"><div class="OhZyZc jgWGIe"><h2 class="bNg8Rb">Webbresultat</h2><a class="rTyHce" role="presentation" href="javascript:void(0)" data-ved="2ahUKEwj294XMs9ORAxU1PEQIHXzQMH4QFnoECA4QAQ" ping="/url?sa=t&amp;source=web&amp;rct=j&amp;opi=89978449&amp;url=https://middagskassen.se/middagsfrid/&amp;ved=2ahUKEwj294XMs9ORAxU1PEQIHXzQMH4QFnoECA4QAQ&amp;usg=AOvVaw1h6uUmizBvNf92OO3n-VTz" data-ctpacw="1"><div data-snf="tyjmbc" style="padding-top:16px;padding-right:16px;padding-left:16px;padding-bottom:6px"><div class="N54PNb BToiNc cvP2Ce"><div class="kb0PBd cvP2Ce" data-snf="aAwcdb" style="padding-bottom:11px"><div class="N54PNb OjFzvd cvP2Ce VDicHc"><div class="kb0PBd cvP2Ce" data-snf="o3iNyc"><span><span class="H9lube"><div class="eqA2re NjwKYd Vwoesf" aria-hidden="true"><img class="XNo5Ab" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAjVBMVEVHcEwEBAUYGRkMDAwNDxEaGhkWFhYYGBgZGRkYGRkaGhoXFxcTExMWFhYTExMMDg4bGxsGBgYGBgYFBQX////ofyNaW1v6+vrt7e3h3txycnJOT0+kXB3ExMTU1NQ/QUI0HAm3uLicnJ10RRtdMgfEbiNFLx0yMjKsrK2PkJGBgoPZeCLxhinRdCLKo4aoFcsTAAAAFHRSTlMA+si5Tv5gM9tTER5BKqht7ZDR56egHKsAAAGkSURBVDiNfdPpkqMgEABgEBAkngmLQrw18ZiZff/HW0CzM2Wm7D9Q8glN24I0AJGHASABOAROsR2IDygL3HgEhNFzME3JOZDSu5yDtaGn4D5L/xzUa3YO1OIBgGIHMLn8AvqUAz/FBnCGjusWVBMHIGZxGjPGfwF1ba/BE4942X7AhdLLD1DcbalAyLYEuR+j6xVlPn8BITM7c7cwDqW6r6pZ3lC4AzXE3yCEsipyIfKiljffgb+fg/cfUKjN6ha5hiY5/Hz8BETbFdV1yjp9O4JkKoRQGrYt1GZWmC/tAHuB22qe6rZ8PMrWCn11oCQbwBxWQsxt+cdE2c5CdJDjZ/kYXoDCQuTL+GHBx7jkooAUk+ez3XPAGJoT1mEDw2rOgAFOExxEO4igEnk/flnwNfZ2hxCzaC+6TRL2QlRky4HYfCAIXFO/AJLm9j0cy3KEZgMh0QGEpDOik00jZzsh4QGAuKltlZUrpLqb/jkA7t2r/WPktUTRGwA0bpZKmberpUG2a47AttYktZbNNXFd9QZMw0V+lvnh3nTfwP3+74E9W6h/hi0ocrTM4aoAAAAASUVORK5CYII=" style="height:18px;width:18px" alt="" data-csiid="tmFKafbEOLX4kPIP_KDD8Qc_1" data-atf="1"></div></span></span></div><div class="N54PNb BToiNc cvP2Ce" style="flex-grow:1"><div class="kb0PBd cvP2Ce" data-snf="dqs64d"><div class="GkAmnd ZaCDgb RES9jf q8U8x OSrXXb wHYlTd">Middagskassen.se</div></div><div class="kb0PBd cvP2Ce" data-snf="X87mVe"><span class="nC62wb VndCse z8gr9e ApHyTb OSrXXb yUTMj ob9lvb" role="text">https://middagskassen.se</span></div></div><div class="kb0PBd cvP2Ce" data-snf="G0ofyc" style="width:40px"></div></div></div><div class="kb0PBd cvP2Ce" data-snf="GuLy6c"><div class="F0FGWb v7jaNc ynAwRc MBeuO q8U8x" aria-level="3" role="heading"><div role="link"><span>Middagsfrid® matkasse: Omdöme, utbud &amp; rabattkoder 2025.</span></div></div></div></div></div></a><div class="mb1nxc" style="top:8px;right:0px;width:48px;height:48px"><div jsdata="l7Bhpb;_;tmFKafbEOLX4kPIP_KDD8Qc12" jscontroller="i8S0p" id="atritem-_tmFKafbEOLX4kPIP_KDD8Qc_39" jsslot="" jsaction="rcuQ6b:npT2md;h5M12e" data-ved="2ahUKEwj294XMs9ORAxU1PEQIHXzQMH4Q2esEegQIDhAC"><div class="iTPLzd cB4NFc Aajd3 lUn2nc" style="position:absolute" aria-label="Om resultatet" role="button" tabindex="0"><span class="D6lY4c IjabWd"><span class="xTFaxe z1asCe" style="height:18px;line-height:18px;width:18px"><svg focusable="false" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"></path></svg></span></span></div></div></div></div></div><div class="kb0PBd cvP2Ce A9Y9g" data-snf="nke7rc" data-sncf="1" style="padding-top:2px;padding-right:16px;padding-left:16px;padding-bottom:6px"><div class="VwiC3b yXK7lf tZESfb vMKMLd KbHOTd p4wth r025kc Hdw6tb" style="-webkit-line-clamp:3">Spara pengar och dra ner på månadens matkostnader med en exklusiv Middagsfrid® rabattkod. Här listar vi alla aktuella rabattkoder och exkluva deals som är&nbsp;...</div></div><div class="kb0PBd cvP2Ce A9Y9g" data-snf="mCCBcf" data-sncf="2" style="padding-top:6px;padding-right:16px;padding-left:16px;padding-bottom:12px"><div style="margin-top:-2px" class="jC6vSe xFKRoe"><span class="QU4hqb"><span><span><span class="Y0A0hc"><span class="yi40Hd YrbPuc" aria-hidden="true">4,5</span><span class="z3HNkc" aria-label="Betyg 4,5 av 5" role="img"><span aria-hidden="true"><span class="gTPtFb" style="background:linear-gradient(to right, currentcolor 62px, #dadce0 0%)"></span></span></span></span></span></span></span><span class="QU4hqb"><span class="m8pYM">&nbsp;&nbsp;&nbsp;</span><g-bubble jscontroller="QVaUhf" data-ci="" data-du="200" data-to="18" data-tp="1" jsaction="R9S7w:VqIRre;" jsshadow=""><span jsname="d6wfac" class="c5aZPb" data-hover-hide-delay="1000" data-hover-open-delay="500" data-rounded-corners="true" data-theme="0" data-width="0" role="button" tabindex="0" jsaction="vQLyHf" aria-label="Mer information om betygen för recensioner." jsslot="" data-ved="2ahUKEwj294XMs9ORAxU1PEQIHXzQMH4Qzo0KegQIDxAG"><span class="NeSEsf z1asCe YppZGd" style="height:16px;line-height:16px;width:16px"><svg focusable="false" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M11 17h2v-6h-2v6zm1-15C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zM11 9h2V7h-2v2z"></path></svg></span></span><div class="nnFGuf"><span jsname="bN97Pc" jsslot="" data-ved="2ahUKEwj294XMs9ORAxU1PEQIHXzQMH4QzY0KegQIDxAH"><div class="Ez1zmf">Recensioner verifieras inte av Google Sök</div></span><button jsname="sMNorf" class="TYQ8Af OhScic zsYMMe" aria-label="Ignorera" aria-hidden="false" tabindex="-1" jsaction="DLNOs"></button></div></g-bubble></span></div></div><div style="grid-area:bvRFlf"><div jscontroller="quRSo" class="U3THc" jsdata="Ovtnme;_;tmFKafbEOLX4kPIP_KDD8Qc11" jsaction="rcuQ6b:npT2md"><div jsname="tJHJj" class="jGGQ5e"></div><div jsname="ao5mud"></div><div></div><div style="grid-area:bvRFlf" jsname="LqJ8Lc" class="STJXQd" id="rp_tmFKafbEOLX4kPIP_KDD8Qc_1" data-ved="2ahUKEwj294XMs9ORAxU1PEQIHXzQMH4Q2Z0BegQIERAA"></div></div></div></div></div>

0 commit comments

Comments
 (0)