Stap 11: Instructables telt deel 2 van 2.
Opmerking met de verandering in de manier instructables.com heeft nu webpagina's, zal ik waarschijnlijk opnieuw dit instructable.
Laat zeggen u wilde weten hoe verschillende instructables aan het doen zijn. Duurde niet de tijd om het te maken met een gui. dat is uw huiswerk. Net pakte een paar instructables vanaf de eerste pagina als voorbeeld. Wil je een gegevensbestand maken met de URL's of het webadres van de instructables die u hebt gekozen. Klik met de rechtermuisknop op de links en Koppelingslocatie kopiëren en plak het in uw redacteur met behulp van het gegevensbestand (gelieve Zie de voorafgaande instructables op pagina schrapen als u vragen hebt).
idata: (Opmerking: Voer geen type in "[data]" of [/data] of krijgt u een fout)
[data]
[/ gegevens}
Dan moet je een programmabestand voor het verzamelen van de gegevens via het web scraping maken. Ik heb niet de moeite om er gui omwille van de simplicities gaan.
iGet.sh
[code]
#================================
#
# Instructablesnumbers catcher
#
#=================================
# Toewijzingen
# --------------------------------
datafile = "idata"
# de datum
tmon = $(datum + "%b")
tday = $(datum + "%d")
echo "de weergaven voor $dj op $tmon $tday:"
#=================================
#
# De gegevensinvoer
#---------------------------------
terwijl lees lijn
doen theurl = $line
# uncomment de volgende regel als u wilt zien van de url en/of weergaven
echo -n "$theurl"
# krijgen totale views
# elinks "$theurl" | grep "Totale Views"
# krijgen alle info
elinks "$theurl" | grep -m 2 x bekeken
# Haal nummers
# elinks "$theurl" | grep "Totale Views" | knippen -c 16-25
# Un-opmerking de volgende regel als u wilt dat het een beetje meer leesbaar
# echo ""
gedaan < $datafile
[/ code]
Deze maken een programma:
$ chmod + x iget.sh
Uitvoeren:
$./iget.sh
De weergaven voor op Oct 06:
Totaal aantal malen bekeken: 587
Vandaag bekeken: 95
Totaal aantal malen bekeken: 618
Vandaag bekeken: 608
Totaal aantal malen bekeken: 54,833
Vandaag bekeken: 216
Totaal aantal malen bekeken: 43,876
Vandaag bekeken: 17
Totaal aantal malen bekeken: 15,157
Vandaag bekeken: 12
Totaal aantal malen bekeken: 107,243
Vandaag bekeken: 46
$ _
Het volgende zal alles in een bestand opslaan als uw wilt.
$./iget.sh >> datafile
Een real-time-saver als u vele vele instructables hebt en niet wilt gaan door elke pagina om de gegevens te krijgen. Follow-up van instructable:
Waarschuwing: Gegevens kunnen niet worden altijd up-to-date.
============================================================================
MSWindows:
-----------------------------------
Software nodig:
Browser:
Elinks:
http://www.paehl.com/open_source/?TextBrowser_for_Windows:ELINKS_an_other_textbrowser
Grep
Grep van unxutils
http://downloads.sourceforge.net/project/unxutils/unxutils/Current/UnxUtils.zip?r=&TS=1331135481&use_mirror=iWeb
QBasic vanuitMicroscoop.
http://www.Microsoft.com
WinZip:
http://www.WinZip.com/Win/en/downwz.htm
------------
Wil je een datafile maken met de URL's van de instructables die u controleren wilt op:
idata: (Opmerking: Voer geen type in "[data]" of [/data] of krijgt u een fout)
[data]
[/ gegevens}
Hier is de code. u zult willen maken een programmabestand met de naam scrape.bas. U zal stormloop op vanuit qbasic.
Scrape.bas (gewoon gebruik maken van de lijnen tussen de [code] en [/ code])
[code]
OPEN "idata" FOR INPUT AS #1
terwijl niet (eof(1))
INPUT #1, een$
PRINT een$
b$ = "elinks" + a$ + "| grep Views: "
SHELL b$
AFDRUKKEN
wend
Sluit #1
systeem
[/ code]
Opmerking: Hebt u freebasic voor mswindows of freebasic voor linux. de code zal werken op beide machine. Ik veronderstel dat het zou werken op een Mac ook als je had de juiste basistaal compiler. Hou van overdraagbare code!
Zodra u alle bestanden hebt gemaakt en de prorgams die u hebt gedownload toegankelijk vanuit de directory zijn, u moet zitten kundig voor krijgen een afdruk uit.
c:\ > qbasic/run scrape.bas
Nabeschouwing: kon waarschijnlijk in plaats daarvan van gebruikte lynx...
========================================================
Tijdelijke oplossing:
#================================
#
# Instructablesnumbers catcher
#
#=================================
# Toewijzingen
# --------------------------------
szAnswer = $(zenity--selectie van bestanden--titel = "Selecteer een iurl bestand om te lezen")
datafile = $szAnswer
outfile = "inumdata"
totaal = 0
# de datum
tmon = $(datum + "%b")
tday = $(datum + "%d")
echo "de weergaven voor $dj op $tmon $tday:" > $outfile
#=================================
#
# De gegevensinvoer
#---------------------------------
terwijl lees lijn
doen theurl = $line
echo "$theurl"
# echo -n "$theurl'" >> $outfile
# krijgen totale views
# count = $(elinks "$theurl" | grep -m 1 "hits-count" | sed ' s/[^0-9]*//g')
Count = $(elinks "$theurl" | grep -m 1 "meningen" | sed ' s/[^0-9]*//g')
# laat totaal$ totale + $count =
echo "$count" >> $outfile
gedaan < $datafile
# echo "totale: $total" >> $outfile
zenity--tekst-info--filename = $hetbestand