Web scraping / tv tablå script

Här diskuterar vi skal, kommandon och klassiska linuxverktyg.
spaden
Inlägg: 14
Blev medlem: 15 jun 2007, 15:47
OS: Debian
Ort: Skåne

Web scraping / tv tablå script

Inlägg av spaden »

Tja. Har lekt lite med webcrawling / web scraping den senaste tiden och tänkte fråga om någon vet vart man kan läsa mer om vad man får och inte får göra.Det var någon sida som nämnde "web scraping rules" men det fanns inga ref och jag tycks inte hitta något vettigt, kanske finns något i svenska lagen ?? :P

Iaf ska jag åt ett företag dumpa pris och lagerstatus från en annan site i deras egna affärssystem då det är återförsäljare och inte vill surfa varje gång det måste få reda på denna data. enligt min moral så är detta 100% lagligt att göra men jag har läst förr att vissa siter dumpar data och sedan byggde tjänster av det. Vilket jag kan förstå är olagligt. Så finns det några direkta regler eller är det bara moral och etik frågor? ex säg att företaget hade haft api som de typ säljer som extra tjänst hade web scraping varit olagligt isf fall?


Sen varför jag posta i "terminalforum" enjoy om det nu inte redan finns.
[eviltoaster]$ tv kanal5
===============================================
06:15 Atom
06:40 Atom
07:05 Sjunde himlen
07:55 - 08:25 Vänner
09:10 Grey's anatomy
10:05 America's funniest home videos
10:30 Is she really going out with him?
11:00 Biggest loser
11:50 Sjunde himlen
12:45 Ellen DeGeneres show
13:40 Good morning, Miami
14:10 The Big bang theory
14:40 Fresh Prince i Bel Air
15:10 America's funniest home videos
15:40 One Tree Hill
16:35 Is she really going out with him?
17:05 Grey's anatomy
18:00 The Big bang theory
18:30 Vänner
19:00 Biggest loser
20:00 Unga mödrar
20:30 Unga mödrar
21:00 So you think you can dance
22:50 Vänner
23:20 CSI
00:20 Inside
01:20 MacGyver
02:20 Living Lahaina
02:50 Maui fever
03:15 Sexual healing
04:25 Animal doctor
04:50 Fresh Prince i Bel Air
05:15 Ellen DeGeneres show
===============================================

Kod: Markera allt

#!/bin/bash
#
# Script: TV SCHEDULE SCRIPT
#
# Author (A) 2010 EvilToaster
#

# Variable

FireFox="Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5"
Url="http://www.tv.nu/kanal"

# Function

function func
{

# Use wget to get html content,time and title.
wget \
--quiet \
--user-agent=$FireFox $Url/$1

# Change from ISO-8859-1 to UTF-8 else some characters can be messed up.
# You need to find wich type of encoding your html site use.
iconv --from-code=ISO-8859-1 --to-code=UTF-8 $1 > /tmp/tmp_site

# Now it is time to parse wgets data
echo "==============================================="
cat /tmp/tmp_site | \
awk '/<div id=\"([0-9]*)\" class=\"program p[a-zA-Z0-9*]\"><h2>(.*?)<strong>(.*?)<\/strong><\/h2>/' | \
sed 's/<div id="[0-9]*" class="program p[yog]"><h2>//' | \
sed 's/ <strong>/ /' | sed 's/<\/strong><\/h2>//' | \
sed 's/<!--:SLUTTID-->//'
echo "==============================================="


# Delete wget files.
rm $1
rm /tmp/tmp_site

return $?
}


# Parse users argument.
# here you can modify all the channels name.

if [ -z $1 ] ; then

echo "Error: i need one argument to function correctly."

elif [ $1 == 'motor' ] ; then

func viasatsport3
exit 0

else

func $1

fi

exit 0
Detta måste ju vara 100% lagligt då jag ändå aldrig klickar på reklam banners m.m så vinner dom ju inte mer pengar än vanligt på mig.
reklamen måste väll ändå triggas som att jag såg den.

och nej jag är inte rädd bara filosoferar lite ^^
Användarvisningsbild
dmz
Inlägg: 3292
Blev medlem: 29 jul 2008, 19:42
OS: Arch Linux

Re: Web scraping / tv tablå script

Inlägg av dmz »

Det beror på hur man ser det. Vissa tjänster tillhandahåller ett API (jag har dock aldrig sett någon som tar betalt för det), och då är det givetvis bättre att använda det.
Men det är ingen skillnad på att surfa med firefox eller att göra en scraper - båda 'surfar', sett till den bemärkelse man lägger vid 'surfa' vid dagligt tal.
Men att scrapea får man göra med finess. Använd en bekant useragent. Scrape'a inte i en infinite loop utan sleep. Kort sagt, gör inte onödiga saker onödigt mycket onödigt länge. :)

Jag måste tipsa om http://search.cpan.org/dist/WWW-Mechani ... chanize.pm som är helt underbar att arbeta med. Perl, men jag har sett att mechanize finns till flera språk.

Så - om det är lagligt? Jag kan inte tänka mig något annat. Däremot kan det finnas policys för enskilda sidor och tjänster. Sedan om man tycker att man ska bry sig om det är en annan sak. De har ju ändå ingen möjlighet att veta om det är en scaper eller en 'vanlig' browser som surfar runt (om det inte är väldigt slarvigt kodat).

Edit: curl > wget ;)
Edit 2:
En gyllene regel är att aldrig, aldrig någonsin parse'a html/xml med reguljära uttryck. Det blir aldrig bra, och det kommer att gå sönder direkt vid ändrad design. Använd en parser.
ǁ A: Because it obfuscates the reading.
ǁ Q: Why is top posting so bad?
Skriv svar

Återgå till "Terminalforum"