Sök på "XMLHTTP", det kanske skulle vara något. Hurvida lagligt det är får du fråga ngn annan om.
MVH Jesper
27 svar · 1 570 visningar · startad av MoonCow
Tjenare! Det finns ju en massa siter som spray, passagen, tv.nu och så där man kan se vad som går på tv. Skulle man kunna med asp läsa ner htmlkoden och på nått sätt leta reda på det som går på tv och sedan skriva ut det?
Har läst nån stans om det hur man läser in htmlkoden från en site, så det vet jag går iaf... men minns inte hur.
Vet någon nått ställe där man kan läsa lite om det?
Sök på "XMLHTTP", det kanske skulle vara något. Hurvida lagligt det är får du fråga ngn annan om.
MVH Jesper
Eller varför inte bara klippa in en länk i en frame?
http://tvprogram.nu/cgi-tvprogram/tvfix.cgi?NU-tvms.htm
Eller ännu bättre, gör länkar.
MVH Jesper
Du kan ju finslipa denna, posta gärna resultatet så blir till o med jag nöjd.
<%
Set objHTTP = Server.CreateObject("Microsoft.XMLHTTP")
objHTTP.Open "GET", "http://tvprogram.nu/cgi-tvprogram/tvfix.cgi?NU-tvms.htm", False
objHTTP.Send
strHTML=objHTTP.responseText
Set objHTTP = Nothing
Set RegEx = New RegExp
RegEx.Global = True
RegEx.Pattern = "end ad"
strHTML= RegEx.Replace(strHTML,( chr(253) ))
RegEx.Pattern = "palmpilot"
strHTML= RegEx.Replace(strHTML,( chr(254) ))
RegEx.Pattern = chr(253) & "[^" & chr(254) & "]*" & chr(254)
Set strOut = RegEx.execute(strHTML)
strHtml = strOut.Item(0)
Set RegEx = New RegExp
RegEx.Global = True
RegEx.pattern = "(\n)"
strHtml = RegEx.replace(strHtml, " ")
Set RegEx = Nothing
strHtml = Replace(strHtml,chr(253)," ")
strHtml = Replace(strHtml,chr(254)," ")
set r = new regexp
r.ignorecase = true
r.global = true
r.pattern = "(\<a.*?\<\/a\>)"
response.write (r.replace(strHtml,""))
%>
Vad som jag tror kan vara lättare är om man använder sig av xslt för att transformera html-dokument till xml-data för att plocka ut den informationen som man vill ha.
Läste en artikel om det på http://www.devx.com/ för länge sen men jag hittar den dessvärre inte längre.
Jag pillar och pillar och tänkte, jag kan ju ta ut allt som är i size 4 och verdana i bold. Med denna koden...
<%
Set objHTTP = Server.CreateObject("Microsoft.XMLHTTP")
objHTTP.Open "GET", "http://tvprogram.nu/cgi-tvprogram/tvfix.cgi?NU-tvms.htm", False
objHTTP.Send
strHTML=objHTTP.responseText
Set objHTTP = Nothing
Set objRegExp = New regexp
objRegExp.Global = true
objRegExp.IgnoreCase = true
objRegExp.Pattern = "<font face='Verdana, Helvetica, Arial' size='4'><b>[b].*[/b]</b></font>"
Set hittade = objRegExp.Execute(strHTML)
For each item in hittade
Response.Write ""&item.Value&"<br>"
Next
%>
Men nu verkar problemet ligga i Regexpen...
.* är inte det för att hämta allt som ska finnas där emellan? antagligen inte... för som det är nu ger den mig inga svar... nån som vet hur det bör lyda?
Tror du ska använda citattecken istället för apostrofer. Dvs:
objRegExp.Pattern = "<font face=""Verdana, Helvetica, Arial"" size=""4""><b>.*</b></font>"
njä... tror inte det är felet, funkade iaf inte. Kanske hela satsen som är fel?
objRegExp.Pattern = "<font face=""Verdana, Helvetica, Arial"" size=""2""><b>.*</b></font>"
fungerar
men inte
objRegExp.Pattern = "<font face=""Verdana, Helvetica, Arial"" size=""4""><b>.*</b></font>"
Underligt...
pirro: d var det jävligaste... det gör det fan... *kliar sig hårt i skallen*
tihi.. titta vad jag lyckades med :)
http://www.geeloo.com/hbgvader.asp
Annars kan du ju lägga en liten länk till denna i en popup...
http://tvprogram.nu/cgi-tvprogram/smalltv.cgi?NU-smalltvtvms.htm
Ursprungligen av toha **Vad som jag tror kan vara lättare är om man använder sig av xslt för att transformera html-dokument till xml-data för att plocka ut den informationen som man vill ha.
Läste en artikel om det på http://www.devx.com/ för länge sen men jag hittar den dessvärre inte längre.**
Jepp, det är helt klart snyggare.
Jag gjorde på så sätt i ett projekt där vi behövde parsa ut data från tusentals hierarkiskt ordnade webbsidor varje natt och det fungerade väldigt bra, i och med att all logik för utplockandet av data ligger i XSL-filer så är det lätt att ändra om HTML-sidan byter form.
Dock så måste HTML-koden "tvättas" ganska ordentligt för att bli valid XML. Vårt projekt var Javabaserat och vi använde en Javaport av en produkt som heter Tidy för att sköna rensningen, hur det funkar med XMLHTTP vet jag inte, har den någon inbyggd logik för att fixa till HTML-koden till XML? Annars kan man säkerligen använda Tidy i en COM-komponent som tar hand om att rensa upp HTML-datat.
Som sagt, skall man göra ett seriöst projekt som plockar ut mycket data från HTML-källor så är tohas förslag helt klart det snyggaste och mest flexibla sättet.
Ursprungligen av MoonCow tihi.. titta vad jag lyckades med :)
http://www.geeloo.com/hbgvader.asp
Avslöja gärna HUR du gjorde också...
Är säkert många som är intressearde av det.. ;)
Mooncow:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Microsoft Access Driver] Cannot update. Database or object is read-only.
/addauser.asp, line 50
På din site!
MVH Jesper
exakt. mooncow hur gjorde du?? Jag skulle vilja ha reda på om man kan få fram temeraturen i ESKILSUNA.
Ursprungligen av Jesper T Mooncow:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Microsoft Access Driver] Cannot update. Database or object is read-only.
/addauser.asp, line 50
På din site!
MVH Jesper
Lika ställd som du... måste vara killen på webhotellet som plockat bort skrivrättigheter för mig mapp databsen ligger i. Blir så trött på han, aldrig stött på nån så inkompetent... suck... får väl ringa upp killen...
Ni som undrade hur jag gjorde, kod:
<%
Set objHTTP = Server.CreateObject("Microsoft.XMLHTTP")
objHTTP.Open "GET", "http://vader.passagen.se/cgi-bin2/forecast_for_place.cgi?place=112083", False
' leta rätt på rätt länk till just din stad först och lägg in ovan... som det är nu är det hbg.
objHTTP.Send
strHTML=objHTTP.responseText
Set objHTTP = Nothing
Set objRegExp = New regexp
objRegExp.Global = false
objRegExp.IgnoreCase = true
objRegExp.Pattern = "<font face=""Verdana,Arial,Geneva"" size=""5"" color=""#000000"">.*°C</font>"
Set grader = objRegExp.Execute(strHTML)
Response.Write "Just nu är det "&grader&" i din stad...<br>"
%>
Hmm
Får bara detta felmeddelande hela tiden när jag testar..
Microsoft VBScript runtime error '800a01c2'
Wrong number of arguments or invalid property assignment
/vader.asp, line 16
Och det är raden där jag skriver ut resultatet..
Response.Write "Just nu är det "&grader&" i din stad...<br>"
Jag fick exakt samma felmeddelande.....
Jag får oxå samma felmsg :(
Hur skulle ett XMLHTTP-script se ut om jag skulle hämta TOP 5 av dessa nyheter, och lägga in dem på en extern sida?
http://www.alternativet.nu/index_22_left_innehall.asp
Jag vill ha rubriken, id och tiden då nyheten skrevs.