您应该也预料到了,实践的结果总会出人意料的,最后不得不佩服51job设计人员不知是有否有意为之的页面设计风格——每个网页中有两个<html></html>标签对,往往第一个</html>出现在真正的body内容被现示之前。
51job除了首页之外的网页,标签结构一般是这样的:
<html>
<head>
...
</head>
<body attributelist=‘...‘ onload=‘...‘>
</html>
<html>
<body>
真正的显示内容
</body>
</html>
这个结构在被mshtml.HTMLDocument解析后,被存入变量的只会包含以下内容:
<html>
<head>
...
</head>
</html>
其余内容被忽略,但是,浏览器还是会显示其余内容的~~ 也因此,我用WebBrowser控件浏览其页面,却无论如何也跟踪不到它真正的现示内容。
试着在google和baidu搜索,"职位,51job,程序员",果然没有任何有效查询!
哎,糟蹋了自己在mm心中的“高手”形象,换得这一点点编程技巧,在此与大家共享,寥解心中闷气~~
Feedback
或者干脆下载内容之后,把第一个<html>和最后一个</html>之间的所有html修改掉即可
通过正则进行数据的匹配。
如果不做任何设置直接检索的话估计要好好研究过滤了。
主要是网页设计一般都不是很规范,大家的写作方式都是不一样的。