webForumDet fria alternativet

Få ut nyheter från en annan sida

ASP

4 svar · 400 visningar · startad av voigtann1

Medlem sedan juni 20019 519 inlägg
Frågan#1

Har försökt att ändra om "stockholmsbörsen" från wF script sida så att den ska ta nyheter från sweclockers.se istället... fast nu tar den bara den första träffen den hittar. Hur skulle man kunna göra för att få ut de 3 senaste nyheterna?

<%

Set objHTTP = Server.CreateObject("Microsoft.XMLHTTP")
objHTTP.Open "GET", "http://www.sweclockers.com/index.php", False

objHTTP.Send
strHTML=objHTTP.responseText
Set objHTTP = Nothing

Set objRegExp = New regexp
objRegExp.Global = false
objRegExp.IgnoreCase = true

objRegExp.Pattern = "<a href=""http://www.sweclockers.com/index.php#.*"" class=small>(.*)</a><br>"
Set hittade = objRegExp.Execute(strHTML)

function egen(str)
str = replace(str,"<img src=""http://www.sweclockers.com/img/nyhetsprick.gif"" height=""4"" width=""4"" alt=""."">","")
egen = str
end function

For each item in hittade

With response
	.write egen(item.value)
End with

Next

%>
Medlem sedan jan. 20032 285 inlägg
#2

Har inte testat, men det här borde väl funka.

<%

Set objHTTP = Server.CreateObject("Microsoft.XMLHTTP")
objHTTP.Open "GET", "http://www.sweclockers.com/index.php", False

objHTTP.Send
strHTML=objHTTP.responseText
Set objHTTP = Nothing

Set objRegExp = New regexp
[b]objRegExp.Global = true[/b]
objRegExp.IgnoreCase = true

objRegExp.Pattern = "<a href=""http://www.sweclockers.com/index.php#.*"" class=small>(.*)</a><br>"
Set hittade = objRegExp.Execute(strHTML)

function egen(str)
str = replace(str,"<img src=""http://www.sweclockers.com/img/nyhetsprick.gif"" height=""4"" width=""4"" alt=""."">","")
egen = str
end function

[b]For each item in hittade
  With response
    .write egen(item.value)
  End with

  intCount = intCount + 1

  If intCount = 3 Then Exit For
Next[/b]

%>
Medlem sedan feb. 20001 050 inlägg
#3

Jag tror det är bättre om du läser deras RSS-feed istället. På så sätt blir din kod inte känslig för designförändingar hos SweClockers.

Den finns på: https://www.sweclockers.se/html/nyheter.xml

Medlem sedan juli 20041 183 inlägg
#4

fungerar å, ä och ö då? När jag använde liknande text var jag tvungen att köra ett script som gjorde texten ifrån binär till vanliga tecken innan jag ändrade något... Eller hur det nu va... Så här ser scriptet ut i alla fall:

' Skapar ett XMLHttp objekt
Set objHTTP = Server.CreateObject("Microsoft.XMLHTTP")
' Sidan som ska hämtas
objHTTP.Open "GET", "http://link.se", False
' Hämtar sidan
objHTTP.Send
'Omvandlar sidan från binär till text så att å, ä och ö syns
strHTML = BinToText(objHTTP.responseBody,35000)
' Tömmer XMLHttp objektet vi skapade
Set objHTTP = Nothing

Function BinToText(varBinData, intDataSizeInBytes)
	const adFldLong = 128
	const adVarChar = 200
	set objRS = Server.CreateObject("ADODB.Recordset")
		
	objRS.Fields.Append "txt", adVarChar, intDataSizeInBytes, adFldLong
	objRS.Open
	
	objRS.AddNew
	On Error Resume Next
	objRS.Fields("txt").AppendChunk(varBinData)
	tmp = objRS("txt").Value
	objRS.Close
	Set objRs = Nothing

	BinToText = tmp
End Function

efter det använde jag RegExp....

Medlem sedan juli 20041 183 inlägg
#5

om du vill ha en RSS-läsare så har jag de också tillgångligt för det är alltid bättre att hämta en RSS-feed för att slippa ändra i sitt script hela tiden :D

'  O==========================================================O
' Skapar en rss-läsare för att hämta ALternativets nyheter från internet
'  O==========================================================O
	
' Adressen på det RSS-dokumentet som ska laddas
extURL = "http://www.alternativet.nu/rss/rss.xml"
	
' RSS-dokumentet laddas
set xmlDoc = createObject("Msxml.DOMDocument")
xmlDoc.async = false
xmlDoc.setProperty "ServerHTTPRequest", true
xmlDoc.load(extURL)
	
' Kollar att RSS-dokumentet laddas korrekt
If (xmlDoc.parseError.errorCode <> 0) then
	' Udskriv eventuelle fejl (for nem fejlretning)
	Response.Write "XML error: " & xmlDoc.parseError.reason

Else ' Fortsätt om allt är okej
	' Öppnar elementet <channel>
	set channelNodes = xmlDoc.selectNodes("//channel/*")

	for each entry in channelNodes
		' De tre obligatoriske elementer i channel lægges i variable
		if entry.tagName = "title" then
			strChannelTitle = entry.text
		elseif entry.tagName = "description" then
			strChannelDescription = entry.text
		elseif entry.tagName = "link" then
			strChannelLink = entry.text
		end if
	next
	
	' Öppnar elementet <item>
	set itemNodes = xmlDoc.selectNodes("//item/*")
				
	For each item in itemNodes
		' Elementerne i channel lægges i variable med #%# som adskillelse
		if item.tagName = "title" then
			strItemTitle = strItemTitle & item.text & "#%#"
		elseif item.tagName = "link" then
			strItemLink = strItemLink & item.text & "#%#"
		elseif item.tagName = "description" then
			strItemDescription = strItemDescription & item.text & "#%#"
		elseif item.tagName = "dc:date" then
			strItemDate = strItemDate & item.text & "#%#"
		end if
	next
	
	' Elementen i channel splittras i arrayer
	tAlternativetNewsHeader = split(strItemTitle,"#%#")
	tAlternativetNewsLink = split(strItemLink,"#%#")
	tAlternativetNewsDescription = split(strItemDescription,"#%#")
	tAlternativetNewsDate = split(strItemDate, "#%#")
End If
264 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
118 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)