Denne tråd er over 6 måneder gammel
Er du sikker på, at du har noget relevant at tilføje?
Powershell Hjælp til at trække specifikke links ud...Af Gæst Tanjamuse | 13-03-2018 08:31 | 3198 visninger | 18 svar, hop til seneste
Hej.
Er der nogle der har forstand på Powershell og som kan hjælpe mig med at trække denne type links:
https://archiveofourown.org[...]
ud af en liste med sider som dette:
https://archiveofourown.org[...]
På forhånd mange tak. --
Gæstebruger, opret dit eget login og få din egen signatur.
Hvis det hjælper har jeg noget der virker fra et andet website?
Jeg ved bare ikke selv nok om Powershell til at ændre til at virke på den nye side.
$InputLinksFile = "c:\temp\InputLinks.txt"
$OutputLinksFile = "C:\temp\OutputLinks.txt"
$InputLinks = @()
$BasePage = " https://www.fanfiction.net[...]
[int]$FirstPageNumber = "600"
[int]$LastPageNumber = "601"
$CurrentPageNumber = $FirstPageNumber
# Make a list of all the pages we want to input, counting from FirstPageNumber to LastPageNumber
while ($CurrentPageNumber -le $LastPageNumber) {
$InputLinks += "$BasePage$CurrentPageNumber"
$CurrentPageNumber++
}
# If you want to manually input a list of pages instead, remove # in front of the next line:
$InputLinks = Get-Content -Path $InputLinksFile
ForEach ($InputLink in $InputLinks) {
# Fetch the entire page. Get links in page with ().Links. Page is compressed with gzip, so we'll have to account for that
$InputPageLinks = (Invoke-WebRequest -Uri $InputLink -Headers @{"Accept-Encoding"="gzip"}).Links
# Filter the link list to only contain links with the sequence "/1/" in it.
$FilteredOutputLinks = $InputPageLinks | Where-Object {$_.href -like "*/1/*"}
# The provided links are relative and not absolute, so we need to add the domain name to the output
foreach ($OutputLink in $FilteredOutputLinks) {
$FinalLink = " https://fanfiction.net[...]
Out-File -Append -FilePath $OutputLinksFile -InputObject $FinalLink
}
Clear-Variable InputPageLinks
} -- Gæstebruger, opret dit eget login og få din egen signatur. Har rettet det til, og gemt det her:
https://pastebin.com[...] -- i7-8700k @ 5Ghz, H115i | ASUS 1080ti Strix | Corsair 32GB 3200MHz | Samsung 960 Pro + 2 x 850 Pro | Asus 27" G-Sync PG278Q --
Sidst redigeret 13-03-2018 14:11 Sådan, så bliver det fjernet. (fjernede også dem som slutter på search)
Der kommer godt nok en del duplicates, det ved jeg ikke om gør noget?
https://pastebin.com[...] -- i7-8700k @ 5Ghz, H115i | ASUS 1080ti Strix | Corsair 32GB 3200MHz | Samsung 960 Pro + 2 x 850 Pro | Asus 27" G-Sync PG278Q Hvis du kan fjerne alle duplicates også, så ville det være helt perfekt.
Tusind tak endnu en gang. -- Gæstebruger, opret dit eget login og få din egen signatur. Velbekomme, så er duplicates også fjernet.
Ikke det pæneste i verden, men det virker..
https://pastebin.com[...] -- i7-8700k @ 5Ghz, H115i | ASUS 1080ti Strix | Corsair 32GB 3200MHz | Samsung 960 Pro + 2 x 850 Pro | Asus 27" G-Sync PG278Q Jeg håber thomsen48 eller en af jer andre kan hjælpe mig med følgende problem:
Når jeg bruger det kode der står i det ovennævnte så får jeg kun 2 sider links i stedet alle de sider jeg har tastet ind.
Hvis det kan lade sig gøre må det meget gerne rettes til 10.000 sider i stedet for kun 2 sider.
På forhånd tak -- Gæstebruger, opret dit eget login og få din egen signatur. Du retter bare det her 2 tal til 10000, står på linje 6
[int]$LastPageNumber = "2"
så det ser sådan her ud
[int]$LastPageNumber = "10000" -- i7-8700k @ 5Ghz, H115i | ASUS 1080ti Strix | Corsair 32GB 3200MHz | Samsung 960 Pro + 2 x 850 Pro | Asus 27" G-Sync PG278Q Kan basepage ændres til dette:
https://archiveofourown.org[...]
Da de ellers bliver gentaget hver gang de bliver opdaterede? -- Gæstebruger, opret dit eget login og få din egen signatur. Faldt lige over den her post.
Her er et andet bud på hvordan man kunne gøre dette.
Jeg har valgt at skrive en funktion istedet for, i min optik bliver det en smule mere elegant og medgørligt. Funktion kan hentes/ses her
https://pastebin.com[...]
Funktionen loades, og bruges således
get-fanlinks -StartPage 1 -EndPage 2 -url " https://archiveofourown.org[...] -ExportCsv
Der er 4 switches, startpage og endpage bestemmer hvilken forum side man starter og slutter på, angives disse ikke, starter man på 1, og slutter når der ikke er flere. I skrivende stund er der 1316 sidder, så man bør lige overveje at sætte endpage.
-url, her linker man url til det show man vil hente links til IE. Buffy, Assassins creed etc. en url vil være eks.
" https://archiveofourown.org[...]
Den sidste switch -ExportCsv, for lige at opsummere så det som funktionen gør er at den henter information og henter relevante links, udfra dette bygger den en liste med objekter, hvert objekt består af
* Page :: dette er NR på den forum side som linket er hentet fra
* WebPage :: Webpage til forumside som linket er hentet fra
* Titel :: Titel på Post
* Url :: Url til Post
Så hvis man benytter sig af sidste switch, vil alle de her information blive lagt ud på ens skrivebord i et csv format. Hvis man ikke gør det, kan listen gemmes direkte i en variable, som man så kan behandle efter behov.
I min optik en lidt mere elegant og dynamisk løsning :) -- Tager den også links man skal være registreret for at se og kommer i de i den rækkefølge de er udgivet eller den de er opdateret?
Og skal jeg bare sætte det ind i powershell? -- Gæstebruger, opret dit eget login og få din egen signatur. #12
Aner ikke om den tager links som man skal være logget ind for, det jeg har skrevet, er skrevet ud fra OP.
Den nemmeste måde at bruge functions er at du tager og gemme den som en ps1 fil, og så når du åbner powershell skriver du
Import-module "sti\til\script.ps1" -Force
og som jeg gav som eksempl, så skriver du blot funktionen eks.
Get-FanLinks -StartPage X -EndPage X -url "URL TIL SHOW" -ExportCsv
så tager den fra side X til X og ligger det i en CSV fil til dig på skrivebordet.
Beklager, jeg troede du var vant til at bruge powershell, så jeg forvented at de her emner var kendte. -- Sidst redigeret 03-05-2018 21:37 Jeg er OP, og jeg ved ikke ret meget om Powershell, hvorfor jeg har spurgt om hjælp.
Jeg behøver ikke en csv-fil for jeg skal bruge links'ne i et andet program, så en alm txt-fil er fint.
Kan den ændres så den også samler historier op som man skal være logget ind for at kunne se? -- Gæstebruger, opret dit eget login og få din egen signatur. #14
OP står for "Original Post" / s[ jeg ved godt det er dig, men jeg referer til din orginale post, deraf OP.
Csv står for "Comma Seperated File", og er i og for sig en txt fil, det er en helt alm måde at håndtere data på når man arbejder med så små og temp data.
Jeg ved ikke hvordan det at samle historier "man skal være logget ind for er at kunne se er skruet sammen, hvis du giver mig en konto jeg kan bruge til at teste på, så kan vi godt finde ud af noget. -- Jeg skal have lavet en alternativ konto så, medmindre du kan forklare mig hvor det skal sættes ind?
Det her er et eksempel på en restricted:
https://archiveofourown.org[...]
Det er et forum man skal inviteres til så der kan gå lidt tid. -- Gæstebruger, opret dit eget login og få din egen signatur. Jeg har fundet en anden løsning på de historier der er restricted.
Men jeg har en ny opgave:
Kan I hjælpe med en løsning til links som dette:
https://archiveofourown.org[...]
Nummeret på siden er markeret med fed -- Gæstebruger, opret dit eget login og få din egen signatur. Hvor skal jeg tilføje username og password? I det script der allerede er foreslået? -- Gæstebruger, opret dit eget login og få din egen signatur.
Grundet øget spam aktivitet fra gæstebrugere, er det desværre ikke længere muligt, at oprette svar som gæst.
Hvis du ønsker at deltage i debatten, skal du oprette en brugerprofil.
Opret bruger | Login
|
Du skal være logget ind for at tilmelde dig nyhedsbrev.
Hvilken udbyder har du til internet? 234 personer har stemt - Mit energiselskab (Ewii f.eks) 12%
|