Webbsida skrapning via Linux. (11 / 16 steg)
Steg 11: Instructables räknar del 2 av 2.
Obs med förändringen i det sättet instructables.com nu gör webbsidor, jag kommer antagligen behöva göra om detta instructable.
Låt oss säga du ville veta hur flera instructables gör. Tog inte tid att göra det med en gui. Det är din läxa. Plockade bara några instructables från första sidan som ett exempel. Du kommer att skapa en fil med URL: er eller webbadressen för den instructables som du har valt. Högerklicka på länkarna och Kopiera länkadress och sedan klistra in den i din redigerare med datafilen (Vänligen se den tidigare instructables på sidan skrapning om du har några frågor).
idata: (Obs: gör inte typ i "[data]" eller / [data] eller du kommer att få ett fel)
[data]
[/ data}
Måste du skapa en programfil för att samla in data via webben skrapning. Jag gick inte till problem att göra det gui för simplicities skull.
Iget.sh
[code]
#================================
#
# Instructablesnumbers catcher
#
#=================================
# Uppdrag
# --------------------------------
datafile = "idata"
# datum
tmon = $(datum + "%b")
tday = $(datum + "%d")
ECHO "synpunkter för $dj på $tmon $tday:"
#=================================
#
# Indata
#---------------------------------
medan Läs linje
göra theurl = $line
# avkommentera följande rad om du vill se den url och utsikt över eller
eko -n "$theurl"
# få totala visningar
# elinks "$theurl" | grep "Total utsikt"
# få all info
elinks "$theurl" | grep -m 2 visningar
# få bara siffror
# elinks "$theurl" | grep "Totala visningar" | skär -c 16-25
# Un anmärkning nästa rad om du vill att det ska vara lite mer lättläst
# echo ""
gjort < $datafile
[/code]
Gör det ett program:
$ chmod + x iget.sh
Kör det:
$./iget.sh
Vyerna för på okt 06:
Totalt antal visningar: 587
Idag visningar: 95
Totalt antal visningar: 618
Idag visningar: 608
Totalt antal visningar: 54,833
Idag visningar: 216
Totalt antal visningar: 43,876
Idag visningar: 17
Totalt antal visningar: 15.157
Idag visningar: 12
Totalt antal visningar: 107,243
Idag visningar: 46
$ _
Följande kommer att spara allt i en fil om din vilja.
$./iget.sh >> datafile
En realtid sparare om du har många många instructables och vill inte gå igenom varje sida för att hämta data. Följa upp instructable:
Varning: Data kanske inte alltid upp till datum.
============================================================================
Mswindows:
-----------------------------------
Programvara som behövs:
Webbläsare:
Elinks:
http://www.paehl.com/open_source/?TextBrowser_for_Windows:ELINKS_an_other_textbrowser
Grep
Grep från unxutils
http://downloads.sourceforge.net/Project/UnxUtils/UnxUtils/Current/UnxUtils.zip?r=&TS=1331135481&use_mirror=iWeb
QBASIC från Microsoft.
http://www.microsoft.com
WinZip:
http://www.WinZip.com/Win/en/downwz.htm
------------
Du kommer att vilja skapa en datafil med URL-adresser av instructables du vill kolla på:
idata: (Obs: gör inte typ i "[data]" eller / [data] eller du kommer att få ett fel)
[data]
[/ data}
Här är koden. du kommer att göra en programfil som kallas scrape.bas. Du kommer att köra det från qbasic.
Scrape.bas (bara använda linjerna mellan [code] och [/ code])
[code]
Öppna "idata" för INPUT AS #1
medan inte (eof(1))
INPUT #1, en$
Skriva ut en$
b$ = "elinks" + en$ + "| grep visningar: "
SHELL b$
SKRIV UT
wend
nära #1
systemet
[/code]
Obs: Om du har freebasic för mswindows eller freebasic för linux. koden fungerar på antingen maskin. Jag antar att det skulle fungera på en Mac också om du hade rätt grundläggande språk kompilatorn. Älskar flyttbar kod!
När du har skapat alla filer och de prorgams som du har hämtat är tillgängliga från katalogen, du bör kunna få en utskrift ut.
c:\ > qbasic/kör scrape.bas
Eftertanke: kunde förmodligen av begagnade lodjur istället...
========================================================
Temp fix:
#================================
#
# Instructablesnumbers catcher
#
#=================================
# Uppdrag
# --------------------------------
szAnswer = $(zenity--filval--title = "Välj en iurl fil att läsa")
datafile = $szAnswer
Outfile = "inumdata"
Total = 0
# datum
tmon = $(datum + "%b")
tday = $(datum + "%d")
ECHO "synpunkter för $dj på $tmon $tday:" > $outfile
#=================================
#
# Indata
#---------------------------------
medan Läs linje
göra theurl = $line
ECHO "$theurl"
# echo -n "$theurl" ">> $outfile
# få totala visningar
# count = $(elinks "$theurl" | grep -m 1 "hits-count" | sed ' s/[^0-9]*//g')
count = $(elinks "$theurl" | grep -m 1 "visningar" | sed ' s/[^0-9]*//g')
# Låt totalt = $totalt + $count
ECHO "$count" >> $outfile
gjort < $datafile
# echo "totala: $total" >> $outfile
zenity--text-info--filnamn = $utfil