注册 登录
编程论坛 VFP论坛

如何将"新浪热榜”新闻标题下载下来

王咸美 发布于 2025-11-09 08:59, 666 次点击
如何将"新浪热榜”新闻标题下载下来?请高手赐教,万分感谢!
只有本站会员才能查看附件,请 登录
7 回复
#2
yiyanxiyin2025-11-09 14:34
学习一下爬虫技术 有一整套方案和可行办法
#3
nbwww2025-11-09 16:20

一种办法是解析HTML   截取想要的
一种是分析一下从API下载JSON中取得,网址里面时间戳是动态的     https://feeds.*%22%2C%22timestamp%22%3A1762675903947%2C%22net%22%3Anull%2C%22channel%22%3A%22131250%22%7D&cateid=1o&zhiding=1&tm=1489716199&filters=url%2Cwapurl%2Cthumbs%2Cthumbscount%2Ctitle%2Cintro%2Cstyle%2Cmedia%2Ctype%2Cvideos%2Cpicscount%2Cdataid%2Cshowtags%2Ccommentcount
#4
王咸美2025-11-10 14:09
怎么把新闻标题爬下来,VFP代码如何写?难度可能较大,还请高手赐教!
#5
sam_jiang2025-11-11 11:22
爬哪个标题?
下面这些吗?

只有本站会员才能查看附件,请 登录
#6
王咸美2025-11-11 12:04
对!
#7
sam_jiang2025-11-11 14:29
效果图:
只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录


代码如下:
程序代码:

*!* 本程序用来向新浪新闻抓取"时尚热榜"的标题列表*!*
*!* 首先要先上网浏览准备抓取的网页,查看它的源代码,*!*
*!* 看看标题列表在哪个地方*!*
CLEAR
ohttp=CREATEOBJECT("WinHttp.WinHttpRequest.5.1")
ohttp.Open("get","https://news./")
ohttp.Send()
cstr=STRCONV(ohttp.ResponseBody,11) &&将utf-8编码的字符串转换成双字节
npos=AT_C("时尚热榜",cstr) &&记录时尚热榜在字符串中的位置
*!* 注意到所有的标题列表包裹在<ul>里面*!*
i=1
DO WHILE .t.
    npos_ul=AT_C("<ul",cstr,i)
    IF npos_ul<npos &&如果在时尚热榜之前,则不是我们要找的
        i=i+1
        loop
    ELSE
        EXIT
    ENDIF
ENDDO

cfindstr=STREXTRACT(cstr,"<ul","</ul>",i)
*!* ?cfindstr 调试查看内容是否正确

*!* 查看每个标题前后的标签是否有规律,发现是包含在k"></a> 之间*!*
DO WHILE .t.
    cnewstitle=STREXTRACT(cfindstr,'k">',[</a>],1)
    IF EMPTY(cnewstitle)
        EXIT
    ELSE
        ?cnewstitle &&查看输出的内容
        cfindstr=STRTRAN(cfindstr,'k">'+cnewstitle+[</a>],"") &&去掉已经搜索到的内容
        loop
    ENDIF
ENDDO
RELEASE ohttp
      



#8
王咸美2025-11-11 17:30
谢谢!谢谢🙏
1