Board logo

标题: [网络连接] 批处理如何实现采集/提取网站/网页上的指定链接/网址? [打印本页]

作者: wh1234567    时间: 2016-5-2 11:00     标题: 批处理如何实现采集/提取网站/网页上的指定链接/网址?

本帖最后由 pcl_test 于 2016-11-13 20:27 编辑

例如,我想利用批处理bat或vbs批量获取http://www.55188.com/forum-111-1.html这个网页里的全部帖子的链接网址和标题并输出到文本里(每个链接需是完整的网址包含http://),请问能不能实现呢?希望老师帮助。
下面该咋写呢?希望老师帮我下好吗?
作者: codegay    时间: 2016-5-2 16:11

混了十年论坛,不要一贴多发都不知道。
作者: codegay    时间: 2016-5-2 18:18

  1. """
  2. python采集55188.com论坛URL.py
  3. http://bbs.bathome.net/thread-40289-1-1.html
  4. 2016年5月2日 17:28:47 codegay
  5. 参考资料: Python3学习笔记(urllib模块的使用)
  6. http://www.cnblogs.com/Lands-ljk/p/5447127.html
  7. """
  8. print("程序运行中...")
  9. from urllib import request
  10. from time import sleep
  11. import re
  12. rooturl="http://www.55188.com/"
  13. forumurl="http://www.55188.com/forum-111-{}.html"
  14. tidurl="http://www.55188.com/viewthread.php?tid={}\n"
  15. with open("result.txt","w+") as f:
  16.     for r in range(1,210):
  17.         r=request.urlopen(forumurl.format(r))
  18.         txt=r.read().decode("gbk")
  19.         rec=re.compile('''viewthread.php\?tid=(\d+).+#anchorlink''')
  20.         tid=set(rec.findall(txt))#去重复
  21.         for id in tid:
  22.             f.write(tidurl.format(id))
  23.         #sleep(1)
  24.             
  25. input("运行结束,回车退出")
复制代码

作者: pcl_test    时间: 2016-5-2 19:08

本帖最后由 pcl_test 于 2016-11-13 20:32 编辑

举个栗子
  1. //&cls&mshta "%~f0">"结果.txt"&pause&exit
  2. <script src=http://www.bathome.net/lib/diy/Function.js></script>
  3. <script>
  4. var fso = new ActiveXObject('Scripting.Filesystemobject');
  5. var StdOut = fso.GetStandardStream(1);
  6. var url = 'http://www.55188.com/';
  7. //1到10页
  8. for(var i=1;i<=10;i++){
  9.     var txt = '', u = url+ 'forum-111-'+ i +'.html';
  10.     var links = web(u).match(/<span\sid=\"thread_\d+\"[^>]+?>[\s\S]+?<\/span>/g);
  11.     for(var j=0;j<links.length;j++){
  12.         var link = links[j].match(/<a href="([^"]+)/)[1];
  13.         var title = links[j].replace(/<[^>]*>/g, '');
  14.         txt +=url + link + ' '+ title +'\r\n';
  15.     }
  16.     StdOut.Write('page '+i+'\r\n'+txt+'\r\n');
  17. }
  18. close();
  19. </script>
复制代码

作者: codegay    时间: 2016-5-2 19:45

这SB提问完老是把原贴编辑掉。




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2