首页 新闻 会员 周边 捐助

C#爬虫获取指定元素内容

0
悬赏园豆:10 [待解决问题]

谁会C#爬虫啊,简单的就可以,我已经获取了页面的HTML,怎么查询指定的元素内容

问题补充:

静态的HTML我知道怎么获取了,但是动态的还是获取不了

C#程序员1的主页 C#程序员1 | 初学一级 | 园豆:5
提问于:2017-06-15 12:18
< >
分享
所有回答(8)
0

正则表达式

RegexTester.exe这个工具跟C#很配

牧师/preacher | 园豆:500 (菜鸟二级) | 2017-06-15 12:54
0

同上 用正则表达式 具体可参考http://www.cnblogs.com/Jiajun/archive/2012/06/17/2552458.html
还可以用类似jsoup的工具,可以试试NSoup

ycyzharry | 园豆:25683 (高人七级) | 2017-06-15 13:21

我需要获取动态生成的数据,比如JS生成的,AJAX生成的,后台绑定的

支持(0) 反对(0) C#程序员1 | 园豆:5 (初学一级) | 2017-06-16 14:44
0

用正则表达式啊,用正则匹配任何你想要的,正则表达式很强大的

| 园豆:332 (菜鸟二级) | 2017-06-15 14:02

我需要获取动态生成的数据,比如JS生成的,AJAX生成的,后台绑定的

支持(0) 反对(0) C#程序员1 | 园豆:5 (初学一级) | 2017-06-16 14:43
0

通过 request  response 获取所有网页内容 然后用正则表达式

深蓝暖殇 | 园豆:197 (初学一级) | 2017-06-15 14:23

我需要获取动态生成的数据,比如JS生成的,AJAX生成的,后台绑定的

支持(0) 反对(0) C#程序员1 | 园豆:5 (初学一级) | 2017-06-16 14:43

@C#程序员1: 动态页面需要模拟浏览器,提供渲染以后才行。

1、用浏览器渲染(前端会有一个浏览器显示,然后控制这个浏览器)

2、用Selenium框架(这玩意是自动化测试的东西)配合 PhantomJS 内核 可以实现后台多线程,无前端渲染 动态页面

支持(0) 反对(0) Sky.Grain | 园豆:308 (菜鸟二级) | 2017-06-16 14:51
0

CsQuery

Nuget 直接下载就行

跟jQuery操作Dom元素一样

Sky.Grain | 园豆:308 (菜鸟二级) | 2017-06-15 16:50
0

拿到的文档是json还是html;

前者可以翻译成对象或者kv;

后者我更多使用HtmlAgilityPack 配合linq,string等,这种开发和运行效率都还不错。

花飘水流兮 | 园豆:13617 (专家六级) | 2017-06-15 20:55
0

1:找到js或ajax请求的路径

2:使用request请求、如果别人后端没做什么请求限制、这时候一般数据就以json格式返回了。

3:如果请求返回的是一些从定向或者错误的状态码、你就要一步步去试比如Referer是否有设置、登录过后的Cookie是否必须重新带回服务端、还有报文头里面别人是否做了防爬处理、别人是怎样处理的、、、、等等、根据你爬的网站,很多东西都要慢慢研究。

清风浮云 | 园豆:213 (菜鸟二级) | 2017-06-16 18:21
0

动态的当然获取不了,有两个组件可以

kingreatwill | 园豆:383 (菜鸟二级) | 2017-06-22 11:21
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册