我正在搜索字符串
<!--m--><li class="g w0"><h3 class=r><a href="
在此链接的HTML源代码中:
http://www.google.com/search?sourceid=chrome&ie=UTF-8&q=Santarus+Inc
我正在寻找它:
string html_string = "http://www.google.com/search?sourceid=chrome&ie=UTF-8&q=" + biocompany;
html = new WebClient().DownloadString(html_string);
d=html.IndexOf(@"<!--m--><li class=""g w0""><h3 class=r><a href=""",1);
由于某种原因,它在第45位发现了它(换句话说,d = 45),但这是不正确的。
以下是字符串HTML的前几百个字符:
<!doctype html><head><title>Santarus Inc‎ - Google Search</title><script>window.google={kEI:\"b6jES5nPD4rysQOokrGDDQ\",kEXPI:\"23729,24229,24249,24260,24414,24457\",kCSI:{e:\"23729,24229,24249,24260,24414,24457\",ei:\"b6jES5nPD4rysQOokrGDDQ\",expi:\"23729,24229,24249,24260,24414,24457\"},ml:function(){},kHL:\"en\",time:function(){return(new Date).getTime()},log:function(b,d,c){var a=new Image,e=google,g=e.lc,f=e.li;a.onerror=(a.onload=(a.onabort=function(){delete g[f]}));g[f]=a;c=c||\"/gen_204?atyp=i&ct=\"+b+\"&cad=\"+d+\"&zx=\"+google.time();a.src=c;e.li=f+1},lc:[],li:0,Toolbelt:{}};\nwindow.google.sn=\"web\";window.google.timers={load:{t:{start:(new Date).getTime()}}};try{}catch(u){}window.google.jsrt_kill=1;\n</script><style>body{background:#fff;color:#000;margin:3px 8px}#gbar,#guser{font-size:13px;padding-top:1px !important}#gbar{float:left;height:22px}#guser{padding-bottom:7px !important;text-align:right}.gbh,.gbd{border-top:1px solid #c9d7f1;font-size:1px}.gbh
答案 0 :(得分:3)
您没有搜索您说的字符串。
如果您正在搜索此内容:
<!--m--><li class="g w0"><h3 class=r>
使用此:
@"<!--m--><li class=""g w0""><h3 class=r>"
不
@"<!--m--><li class=""g w0""><h3 class=r><a href="""
更新:(以下评论)
我按照您使用过的网址进行了谷歌搜索。我发现没有<li>
标记带引号class
属性的情况。你在寻找正确的字符串吗?
答案 1 :(得分:1)
发布更多代码。我的猜测是你的html变量没有存储你认为它是什么。你是否偶然地逐行阅读html?您是在追加或替换先前的内容吗?无论如何,在.IndexOf调用之前或之后立即设置一个断点并检查html的内容。
编辑我浏览了您的代码示例,但未找到您的字符串。
string biocompany = "Santarus Inc";
string html_string = "http://www.google.com/search?sourceid=chrome&ie=UTF-8&q=" + biocompany;
using (WebClient client = new WebClient())
{
string html = client.DownloadString(html_string);
int d = html.IndexOf(@"<!--m--><li class=""g w0""><h3 class=r>");
Console.WriteLine(d);
}
根据您发布的代码,我不确定您在做什么。
答案 2 :(得分:0)
Anthony has given correct solution.
但是,与在代码中下载相比,浏览器显示的下载html也是不同的。
这就是为什么返回的索引变为-1,甚至不是45,如“every_answer_gets_a_point”所述:)
这是另一个问题 - 为什么会这样。
就搜索而言,安东尼已经给出了答案。