问题描述
今天第一天去公司试岗,主管叫我写个爬虫。抓取某个网站的数据。我用的是:WebClientwc=newWebClient();byte[]data=wc.DownloadData(url);stringhtmlText=Encoding.UTF8.GetString(data);当我用正则匹配某个字段的时候,出了些问题,就是我通过上面方法得到的数据和我在浏览器上点击查看源代码的html代码并不同。有些在网页上显示且需要的数据根本没有。我第一感觉就是那个网站某些数据是用js或者ajax请求之类的获取并填充在html元素上的。但是我用WebClient的DownloadData方法只能获取到它网站的源html代码。而后面在客户端通过js动态生成或设置的数据我没法得到。请问有什么办法可以解决。
解决方案
解决方案二:
问你的主管。你们公司de主管不是用户,不是仅仅负责重复用户的需求语言的,而是应该负责设计、分工、明确每一个人都应该完善哪些代码文件、需要什么技术和不用什么技术方案。如果你的主管就是一个搞行政的,只负责当老板和用户的传声筒,那么你就问同事。
解决方案三:
目前页面不需要登录的话,可以在页面中用WebClient和HttpWebRequest都能应付。如果有需要登录的过程,那么还是推荐写成控制台用WebBrowser来处理。
解决方案四:
引用2楼minhua1983的回复:
目前页面不需要登录的话,可以在页面中用WebClient和HttpWebRequest都能应付。如果有需要登录的过程,那么还是推荐写成控制台用WebBrowser来处理。
大部分登录,只要记录cookie,也是OK的。先模拟登录后再将cookie传入
解决方案五:
引用1楼sp1234的回复:
问你的主管。你们公司de主管不是用户,不是仅仅负责重复用户的需求语言的,而是应该负责设计、分工、明确每一个人都应该完善哪些代码文件、需要什么技术和不用什么技术方案。如果你的主管就是一个搞行政的,只负责当老板和用户的传声筒,那么你就问同事。
这哥们是政治委员啊,啥问题不解决,到处训人混分
解决方案六:
找下源码以及看下这个页面的XHR(F12),先找到数据来源再说。如果是ajax动态获取的话你直接用HttpWebRequest请求那个ajax地址就行了呗