这样一个功能,不知能不能实现?

kension 2006-10-30 11:43:30
问题:

我在百度输入要查询的关键字后,把搜索回来的第一个结果即百度快照(.HTML)另存到本地硬盘。(因为我有很多要搜索的关键字,所以想写个程序来自动完成此功能。也就是在搜索出结果页面,保存第一个记录的百度快照)。
请各位给点思路。
...全文
292 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
kension 2006-11-01
  • 打赏
  • 举报
回复
》iuhxq(小灰) ( ) 信誉:100 Blog
http://www.baidu.com/baidu?word=aaa&tn=myie2dg
把其中的aaa进行urlencode,然后GetHtmlByUrl就可以了

试了一下,如果是中文,搜索的关键字变成了乱码,搜索的结果也就不一样了。
比如:搜索关键字是:水龙 如果一搜则变成乱码。


kension 2006-10-31
  • 打赏
  • 举报
回复
<a href="http://cache.baidu.com/c?word=%C4%A7%3B%CA%DE%3B%C2%BC%CF%F1&url=http%3A//games%2Etom%2Ecom/zhuanti/war3/top05/&b=4&a=1&user=baidu" target="_blank" class=m>百度快照</a>
这个匹配正则表达式怎么写?
》(?<url>\S+)\starget=\"_blank\"\sclass=m>百度快照</a>这个好像有问题。
股神 2006-10-31
  • 打赏
  • 举报
回复
up
hy_lihuan 2006-10-30
  • 打赏
  • 举报
回复
学习了
iuhxq 2006-10-30
  • 打赏
  • 举报
回复
http://www.baidu.com/baidu?word=aaa&tn=myie2dg

把其中的aaa进行urlencode,然后GetHtmlByUrl就可以了
iuhxq 2006-10-30
  • 打赏
  • 举报
回复
public string GetHtmlByUrl(string url)
{
WebClient wc = new WebClient();
wc.Credentials = CredentialCache.DefaultCredentials;
Byte[] pageData = wc.DownloadData(url);
string result = Encoding.UTF8.GetString(pageData);
wc.Dispose();
return result;
}
public bool Write(string content, string file, FileMode mode)
{
using (FileStream fs = File.Open(file, mode))
{
byte[] b = Encoding.UTF8.GetBytes(content);
fs.Write( b, 0, b.Length);
}
return true;
}
98star 2006-10-30
  • 打赏
  • 举报
回复
我觉得可以实现,首先分析搜索的结果,获取快照的链接地址,然后解析联系地址的html,获取内容。保存
lgh12345 2006-10-30
  • 打赏
  • 举报
回复
应该是能实现的.
kension 2006-10-30
  • 打赏
  • 举报
回复
是没有说清楚,还是今天上CSDN的人很少呀?
贝贝壳壳 2006-10-30
  • 打赏
  • 举报
回复
上面的<url>里将会得到 "http://cache.baidu.com/c?word=%C4%A7%3B%CA%DE%3B%C2%BC%CF%F1&url=http%3A//games%2Etom%2Ecom/zhuanti/war3/top05/&b=4&a=1&user=baidu"

如何用C#匹配正则表达式取值,查看MSDN上相关正则表达式部分
贝贝壳壳 2006-10-30
  • 打赏
  • 举报
回复
百度快照部分的HTML是这样的

<a href="http://cache.baidu.com/c?word=%C4%A7%3B%CA%DE%3B%C2%BC%CF%F1&url=http%3A//games%2Etom%2Ecom/zhuanti/war3/top05/&b=4&a=1&user=baidu" target="_blank" class=m>百度快照</a>

取出链接的正则表达式

(?<url>\S+)\starget=\"_blank\"\sclass=m>百度快照</a>
kension 2006-10-30
  • 打赏
  • 举报
回复
>> fupip(小)¤(贝) ( ) 信誉:125 Blog 2006-10-30 16:14:00 得分: 0
简单方法 找出你第一个百度快照在网页内容(字符串)中的位置
理想方法 用正则表达式匹配,这个比较通用

这个正则表达式咋写?能搞个例子吗?






贝贝壳壳 2006-10-30
  • 打赏
  • 举报
回复
简单方法 找出你第一个百度快照在网页内容(字符串)中的位置

理想方法 用正则表达式匹配,这个比较通用
gui0605 2006-10-30
  • 打赏
  • 举报
回复
学习了
pfc001 2006-10-30
  • 打赏
  • 举报
回复
up iuhxq(小灰)
kension 2006-10-30
  • 打赏
  • 举报
回复
》iuhxq(小灰) ( ) 信誉:100
嗯,很不错。但有一个问题。
你这样是把搜索的结果,整个网页都DownLoad了对吗?
如果要第一个百度快照怎么判断?

62,266

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧