使用ASPJSON.ASP批量采集获取CSDN的下载列表
CSDN的下载列表引入了vue ssr的框架,大多数Vue项目要支持SSR应该是为了SEO考虑,毕竟对于WEB应用来说,搜索引擎是一个很大的流量入口。Vue SSR现在已经比较成熟了,但是如果是把一个SPA应用改造成SSR应用,成本还是有些高的,这工作量无异于重构前端。另外对前端的技术要求也是挺高的,需要对Vue比较熟悉,还要有Node.js 和 webpack 的应用经验。
基于此CSDN对搜索引擎是十分友好的。

1、我们用getHTTPPage函数获取目标URL的html
Function getHTTPPage(url)
On Error Resume Next
dim http
set http=Server.createobject("Microsoft.XMLHTTP")
Http.open "GET",url,false
'Http.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
Http.setRequestHeader "Content-Type", "application/json"
Http.send()
if Http.readystate<>4 then
exit function
end if
getHTTPPage=bytesToBSTR(Http.responseBody,"utf-8")
set http=nothing
If Err.number<>0 then
Response.Write "<p align='center'><font color='red'><b>服务器获取文件内容出错</b></font></p>" &Err.number
Err.Clear
End If
End Function
2、使用strCut函数匹配到json数据
'截取字符串,1.包括起始和终止字符,2.不包括 Function strCut(strContent,StartStr,EndStr,CutType) Dim strHtml,S1,S2 strHtml = strContent On Error Resume Next Select Case CutType Case 1 S1 = InStr(strHtml,StartStr) S2 = InStr(S1,strHtml,EndStr)+Len(EndStr) Case 2 S1 = InStr(strHtml,StartStr)+Len(StartStr) S2 = InStr(S1,strHtml,EndStr) End Select If Err Then strCute = "<p align='center'>没有找到需要的内容。</p>" Err.Clear Exit Function Else strCut = Mid(strHtml,S1,S2-S1) End If End Function
3、用json的格式化工具瞅一眼,看看节点位置

找到节点位置就方便了
4、引入aspjson1.18.asp 下载地址:https://github.com/gerritvankuipers/aspjson
<% Set oJSON = New aspJSON '载入json oJSON.loadJSON(jsonstring) '可以显示节点的value 'Response.Write oJSON.data("firstName") & "<br>" 'Response.Write oJSON.data("address").item("streetAddress") & "<br>" '遍历该节点下所有Key与value
For Each phonenr In oJSON.data("phoneNumbers")
Set this = oJSON.data("phoneNumbers").item(phonenr)
Response.Write _
this.item("type") & ": " & _
this.item("number") & "<br>"
Next
%>
5、用for each方法拼出csdn的下载完整地址:
For Each list In oJSON.data("pageData")("list")("apiSourceList") Set this = oJSON.data("pageData")("list")("apiSourceList")(list)
username = this.item("username")
id = this.item("id")
Response.Write "https://download.csdn.net/download/"&username&"/"&id&"& "<br>"
Next
6、你还可以采集列表list里的其它字段,比如文件的类型filetype,文件大小sourcesize等
username

浙公网安备 33010602011771号