| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 659 人关注过本帖
标题:再次求助:如何将《仙道九绝》各章节内容完整地爬下来?
只看楼主 加入收藏
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10951
专家分:43591
注 册:2014-5-20
收藏
得分:0 
以下是引用sam_jiang在2025-12-10 16:06:12的发言:

这样就可以了吗?

简单示例,能运行吗?

5 天前 16:09
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10951
专家分:43591
注 册:2014-5-20
收藏(1)
得分:0 
回复 29楼 吹水佬
测试无所谓,实际应该分两步做。
程序代码:
** 测试用 JS 代码,参考 http://www./js/zepto.js 修改。
** 模拟写 JS 文件,实际应用通常先写好 JS 文件。
TEXT TO jsCode TEXTMERGE NOSHOW PRETEXT 15
    <script>
    var content = document.getElementById("ad").innerText;
    eval(content);

    function _ii_rr(content) {    
        content = window.atob(content);    
        var arrays = new Array();    
        arrays = content.split(',');    
        var $chapter = document.getElementById("chapter").innerHTML;    
        $chapter = $chapter.replace(new RegExp(/\[.*?\]/), '');    
        var datas = [];    
        datas = $chapter.split('<br><br>');    
        var $html = '';    
        var el = arrays[0];    
        var len = datas.length;    
        for (var i = 1; i <= len; i++) {        
            $html += datas[arrays[i] - el] + '<br/><br/>';    
        }    
        document.getElementById("ad").innerHTML = $html; 
    } 
    </script>
ENDTEXT
jsFile = "C:\_temp\jscode.js"
STRTOFILE(jsCode, jsFile)
** 模拟写 JS 文件结束

程序代码:
** 爬代码
cUrl = "http://www./6780946/3664234966.html"
http = CREATEOBJECT("WinHttp.WinHttpRequest.5.1")
http.open("GET", cUrl, 0)
http.send()
IF http.status != 200
    RETURN
ENDIF
jsFile = "C:\_temp\jscode.js"
dom = CREATEOBJECT("htmlfile")
dom.write(STRTRAN(http.ResponseText, "script", "soript"))
dom.writeln(FILETOSTR(jsFile))
outFile = "C:\_temp\tmp.txt"
STRTOFILE(dom.getElementById("ad").innerText, outFile)
MODIFY FILE (outFile)
CLEAR ALL 
RETURN



[此贴子已经被作者于2025-12-10 16:20编辑过]

5 天前 16:18
yiyanxiyin
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:9
帖 子:341
专家分:2327
注 册:2023-6-29
收藏
得分:0 
爬虫, 还是用python吧, 你会发现python下的工具用起来才顺手, 且和ai配合很好, 你都不用写代码, 就楼主这个小说, 少则几分钟,多则10多20分钟代码都写好了,ai自动分析html内容, 自动写好代码,并运行,你只要和ai多交流几句,反爬的代码都能给你写好,容错代码也没问题, 然后就将小说自动爬下来放入文件中, 都不用你敲一行代码.  所以,重要的是要知道实现原理, 能看懂代码, 能理解代码, 才能和ai沟通, 当然不会的人有ai也还是不会, ai永远就是个助手,他只能按你的要求写, 你才是关键.
5 天前 17:26
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10951
专家分:43591
注 册:2014-5-20
收藏
得分:0 
回复 33楼 yiyanxiyin
底层逻辑都差不多,无非是 HTTP + HTML 的东西,再下一层就是 TCP/IP + HTML。
python在这方面语言表达能力比vfp强。
python强在于经过很多先行者经过长时间的经验积累,形成大量的类库,后来者才会感觉不费心思就可以随手可得。
vfp弱在于旱就被判死刑,谈不上有什么经验积累,更不能形成大量类库。想当初 dBASE 就有 CALL 执行汇编代码,DOS环境可以开发出图形界面。
假若vfp还在活,凭借vfp的表达能力加数据库加UI集于一身的功能,vfp肯定不会示弱,可惜我只是在做白日梦。
python与vfp都是解释语言,本质上没什么大差别。vfp也可以用其他语言扩展其功能和加强性能,还有COM编程能力,vfp发挥得好还是大有作为的。但是,也只能活在 windows 32位 的环抱里。


5 天前 20:20
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10951
专家分:43591
注 册:2014-5-20
收藏
得分:0 
以下是引用yiyanxiyin在2025-12-10 14:43:05的发言:

http = CREATEOBJECT("WinHttp.WinHttpRequest.5.1")
html = CREATEOBJECT("htmlfile")

既然用了第二个,那么就应该等到js执行完再去取ad的内容就行了,没必要自己去实现_ii_rr()

真能“反爬”的肯定不会让你用 htmlfile 能正常解析执行脚本。
如果装入html文本前不禁止 htmlfile 执行脚本,结果想要的东西都不见了,试试看。
5 天前 21:19
yiyanxiyin
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:9
帖 子:341
专家分:2327
注 册:2023-6-29
收藏
得分:0 
再强的反爬也不能将正常的人为行为反掉,只要模拟出人为行为反爬就不起作用了。那个网站的反爬技术明显比较低级,只能反一般的爬虫,你用htmlfile之所以不正常,应该是这个组件不能下载网页内容,只能靠winhttp给他提供html,但html相关的js文件你都没下载下来,所以js不会正常。所以最好要用无头浏览器呢
5 天前 23:05
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10951
专家分:43591
注 册:2014-5-20
收藏
得分:0 
以下是引用yiyanxiyin在2025-12-10 23:05:11的发言:

再强的反爬也不能将正常的人为行为反掉,只要模拟出人为行为反爬就不起作用了。那个网站的反爬技术明显比较低级,只能反一般的爬虫,你用htmlfile之所以不正常,应该是这个组件不能下载网页内容,只能靠winhttp给他提供html,但html相关的js文件你都没下载下来,所以js不会正常。所以最好要用无头浏览器呢

重温一下27楼说的,尤其是最后一句。
web的东西都离不开http和html,一个是网络通讯部分,一个是解析执行部分,他们是分工协作完成web任务的。
http也就是你说的下载网页之一,js文件怎会不下载呢?只是在什么时候下载的问题。html文本的<script>有src属性的,这就要看 htmlfile了,它是一个解析执行器,它载入html文本解析时,须要下载时它会去下载。所以,http与html是密不可分的。
5 天前 23:49
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10951
专家分:43591
注 册:2014-5-20
收藏
得分:0 
35楼说的有无去试试看?
下载得到的html文本,直接用htmlfile的write载入,看看载入前后的html文本就清楚,按你说的如果无下载js执行理应是无变化。但结果如何?
4 天前 00:01
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10951
专家分:43591
注 册:2014-5-20
收藏
得分:0 
27楼提到的MSHTML的脚本对象接口有不少,htmlfile不只是使用IHTMLDocument2接口对象,其中的parentWindow属性就是调用IHTMLWindow2接口。
4 天前 00:22
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10951
专家分:43591
注 册:2014-5-20
收藏
得分:0 
以下是引用yiyanxiyin在2025-12-10 23:05:11的发言:

再强的反爬也不能将正常的人为行为反掉,只要模拟出人为行为反爬就不起作用了。

会不会有密文html的浏览器,那时只能拷屏了?如果截屏都禁了,那就只能拍照?真的事在人为,不能将正常的人为行为反掉。

[此贴子已经被作者于2025-12-11 00:42编辑过]

4 天前 00:38
快速回复:再次求助:如何将《仙道九绝》各章节内容完整地爬下来?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023024 second(s), 10 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved