This commit is contained in:
nlitkowski 2021-04-07 02:20:30 +02:00
parent 974e04831c
commit 0fc12d23f4

View File

@ -14,9 +14,11 @@ import Text.Printf
extractNestedLinksWithText xpathCondition = (downloadDocument &&& this) extractNestedLinksWithText xpathCondition = (downloadDocument &&& this)
>>> first (getXPathTrees xpathCondition >>> first (getXPathTrees xpathCondition
>>> ((getXPathTrees "//a" >>> getAttrValue "href") >>> (
&&& (listA (deep isText >>> getText) (getXPathTrees "//a" >>> getAttrValue "href")
>>> arr (intercalate " ")))) &&& (listA (deep isText >>> getText)
>>> arr (intercalate " "))
))
>>> arr rotateSecTh >>> arr rotateSecTh
>>> first expandURIFixed >>> first expandURIFixed
@ -25,6 +27,14 @@ extractRecords = extractLinksWithText "(//aside[@class='widget widget_maxmegamen
>>> first (first (extractNestedLinksWithText "//big/a[contains(@href,'.pdf')][img]")) -- pobieramy stronę z adresu URL i wyciągamy linki z tej strony pasujące do wyrażenia XPathowego >>> first (first (extractNestedLinksWithText "//big/a[contains(@href,'.pdf')][img]")) -- pobieramy stronę z adresu URL i wyciągamy linki z tej strony pasujące do wyrażenia XPathowego
-- ostatecznie wyjdą krotki (((adres URL, tytuł nr-u), tytuł podstrony 2), tytuł podstrony 1) -- ostatecznie wyjdą krotki (((adres URL, tytuł nr-u), tytuł podstrony 2), tytuł podstrony 1)
extractRecords2 = proc x -> do
(a, b) <- extractLinksWithText "(//aside[@class='widget widget_maxmegamenu']//a[@class='mega-menu-link'])[1]" -< x -- pary adres-tytuł podstrony
a' <- (extractLinksWithText "(//aside[@class='widget widget_maxmegamenu']//a[@class='mega-menu-link'])[1]") -< a -- pobieramy podstronę i kolejne podstrony z menu
a'' <- (extractNestedLinksWithText "//big/a[contains(@href,'.pdf')][img]") -< a' -- pobieramy stronę z adresu URL i wyciągamy linki z tej strony pasujące do wyrażenia XPathowego
returnA -< a''
-- ostatecznie wyjdą krotki (((adres URL, tytuł nr-u), tytuł podstrony 2), tytuł podstrony 1)
-- ... a tutaj te krotki przerabiamy do docelowej struktury ShadowItem -- ... a tutaj te krotki przerabiamy do docelowej struktury ShadowItem
toShadowItem :: (((String, String), String), String) -> ShadowItem toShadowItem :: (((String, String), String), String) -> ShadowItem
toShadowItem (((url, releaseTitle), collectionTitle), categoryTitle) = toShadowItem (((url, releaseTitle), collectionTitle), categoryTitle) =