找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
楼主: 我来了

[其他] 有无第三方命令行工具可将百度搜索结果中的重定向/跳转链接转换成实际网址?

[复制链接]
发表于 2016-8-31 23:21:21 | 显示全部楼层
回复 14# happy886rr


    ghost.py似乎是后台执行的吧,好像不需要浏览器。
selenium 下面的webdriver 之类的功能是利用chrome作为容器执行网页代码的。所以必须要有。
发表于 2016-8-31 23:56:41 | 显示全部楼层
本帖最后由 523066680 于 2016-8-31 23:59 编辑

就是说无论如何都必须在线获取了对吗
perl
  1. use LWP::UserAgent;
  2. my $ua = LWP::UserAgent->new;
  3. my $res;
  4. my $url = "http://www.baidu.com/link?url=Wu73A5XbmmXbZhGlXCtulGo9VW6nUhnXwxMI4cjO5_j9mVXde7r9LcP5h1GF0qR1&wd=";

  5. $res = $ua->get($url) or warn "$!";
  6. $res->content() =~ /\("(.*)"\)/;
  7. print $1;
复制代码
LWP::Simple
  1. use LWP::Simple;
  2. my $content;
  3. my $url = "http://www.baidu.com/link?url=Wu73A5XbmmXbZhGlXCtulGo9VW6nUhnXwxMI4cjO5_j9mVXde7r9LcP5h1GF0qR1&wd=";

  4. $content = get($url) or warn "$!";
  5. $content =~ /\("(.*)"\)/;
  6. print $1;
复制代码
发表于 2016-9-1 14:37:25 | 显示全部楼层
回复 16# codegay
确实只针对谷歌chrome,火狐浏览器才有效。
那个ghost.py不错,可以运行。
 楼主| 发表于 2016-9-3 17:51:07 | 显示全部楼层
回复 17# 523066680


我记的上次我用【火车头采集】时,那个bing的结果
设好后能得到前面几页的链接反馈
 楼主| 发表于 2016-9-3 19:38:53 | 显示全部楼层
HwndEx = Plugin.Window.Search("cmd.exe")
MyArray = Split(HwndEx, "|")
If UBound(MyArray)>=0 Then
    Delay 50
    MessageBox "没运行批处理"
Else
    RunApp "C:\Users\wcc\Desktop\test.cmd"
End if
我终于知道为什么程序,没运行结束就执行下面的操作了,因为cmd.exe始终在进程中
以至于下面的程序
  1. Rem 下一个
  2. 读第1行 = Lib.文件.读取指定行文本内容("C:\Users\wcc\Desktop\要读取的原始链接.txt", 1)
  3. Delay 100
  4. Call Lib.文件.删除指定行文本内容("C:\Users\wcc\Desktop\要读取的原始链接.txt", 1)
  5. Call Plugin.File.DeleteFile("C:\Users\wcc\Desktop\test.cmd")   

  6. MessageBox 读第1行
  7. 批处理 = "mshta http://bathome.net/s/hta " & """web('"&读第1行&"').match(/URL='([^']+)'/)[1]"" " & ">C:\Users\wcc\Desktop\转换后的要读取的.txt"
  8. MessageBox 批处理

  9. Call Plugin.File.WriteFileEx("C:\Users\wcc\Desktop\test.cmd", 批处理)
  10. Delay 1000
  11. RunApp "C:\Users\wcc\Desktop\test.cmd"






  12. /////////////////////


  13. Text = Plugin.File.ReadFileEx("C:\Users\wcc\Desktop\转换后的要读取的.txt")
  14. MessageBox Text
  15. ///////////////////////
  16. Rem 判断是否生成转换后的要读取的文本
  17. IsFile = Plugin.File.IsFileExit("C:\Users\wcc\Desktop\转换后的要读取的.txt")
  18. If IsFile = True Then
  19.     Delay 100
  20.     goto 写入文件
  21. Else
  22.     Delay 100
  23.     Goto 判断是否生成转换后的要读取的文本
  24. End If

  25. Rem 写入文件

  26. Call Plugin.File.WriteFileEx("C:\Users\wcc\Desktop\转换后的要读取的.txt", 内容)
  27. RunApp "F:\PowerPro_4.9n7\配置文件夹\nircmd.exe clipboard addfile C:\Users\wcc\Desktop\转换后的要读取的.txt"
  28. Goto 下一个









复制代码
 楼主| 发表于 2016-9-4 08:47:48 | 显示全部楼层
回复 17# 523066680

那如果,我只要
https://www.baidu.com/s?ie=utf-8 ... u&wd=bbflash%20破解版&oq=bbflash%20破解版&rsv_pq=bbfb65b30000572f&rsv_t=a97b52zNwocqQUEwcVGZv9VfGnHAnmsfVWHxKE730OXajWQLS1y5GApJnbo&rqlang=cn&rsv_enter=0
前10页内的 搜索链接,还有批处理有办法实现么?
发表于 2016-9-4 15:18:51 | 显示全部楼层
本帖最后由 pcl_test 于 2016-9-4 17:01 编辑

获取百度搜索结果中的链接

  1. //&cls&cscript -nologo -e:jscript "%~f0"&pause&exit

  2. var keyword = 'bbflash 破解版';  //指定搜索关键字
  3. var n=10;  //指定需获取搜索结果的总页数
  4. for(var i=0;i<(n*10);i+=10)GetURL(i, keyword);

  5. function GetURL(page, str){
  6.     var url = 'https://www.baidu.com/s?pn='+page+'&ie=utf-8&wd='+encodeURIComponent(str);
  7.     try{var http = new ActiveXObject('MSXML2.XMLHTTP')}
  8.     catch(e){var http = new ActiveXObject('WinHttp.WinHttpRequest.5.1')}
  9.     http.open('GET', url, false);
  10.     http.send();
  11.     var htmltext = http.ResponseText;
  12.     var reg = new RegExp('<h3\\s?[^<]*?>[\\s\\S]*?<a\\s?[^<]*?(data-click=[^<]+?)?href\\s*?=\\s*?"([^"]+)"[^<]+?>([\\s\\S]+?)<\\/a>', 'ig');
  13.     var result='', m=0, t=page/10+1;
  14.     WSH.echo('-----------------------第'+t+'页搜索结果-----------------------');
  15.     while((result = reg.exec(htmltext)) != null){
  16.         m++;
  17.         WSH.echo(t+'-'+m+'、'+result[3].replace(/<\/?em>/ig, '')+'\r\n百度加密链接:'+result[2]);
  18.         http.open('GET', result[2]+'&wd=', false);
  19.         http.send();
  20.         WSH.echo('原链接:'+http.ResponseText.match(/URL='([^']+)'/)[1]+'\r\n');
  21.     }
  22.     http=null;
  23. }
复制代码
结果如下:
-----------------------第1页搜索结果-----------------------
1-1、BBFlashBack破解版|BB FlashBack Pro(屏幕录像机) v5..._xp系统之家
百度加密链接:http://www.baidu.com/link?url=So ... *N_r58Sw7gQkUF5HOfa
原链接:http://www.xp510.com/xiazai/media/Recording/11348.html

1-2、BB FlashBack Pro下载v5.12.0 汉化破解版_五星级屏幕捕捉和记录...
百度加密链接:http://www.baidu.com/link?url=TE ... oPQggExnkdbOkIukP5P
原链接:http://www.cr173.com/soft/17292.html
……

评分

参与人数 1技术 +1 收起 理由
我来了 + 1 佩服!膜拜!师傅

查看全部评分

 楼主| 发表于 2016-9-4 17:03:05 | 显示全部楼层
本帖最后由 pcl_test 于 2016-9-4 17:15 编辑

回复 22# pcl_test

我改成这样子了,路过的老师帮助我下,谢谢。
只保留一句输出
WSH.echo(''+http.ResponseText.match(/URL='([^']+)'/)[1]+'\r\n'); 这句如何改才能输出c:\1.txt

评分

参与人数 1PB -6 收起 理由
pcl_test -6 勿重复贴码

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 04:10 , Processed in 0.019624 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表