Longshadow 发表于 2021-5-28 10:00

C#爬虫问题

### 我因工作原因想爬取一个网页上的内容,因为我使用的语言是 C#,**.NET技术**,所以我使用了 HttpClient 和 HttpWebRequest 等方法请求。但是请求出来后都是 *加载中...* 的网页内容。是网站的反爬机制导致,因为正常浏览也是 先 *加载中...* 然后立马再展示内容。
### 请问 C# 有没有能让URL执行完后再返回的方法或者相关的 Nuget包 。抑或是有无其他方法能破解反爬机制?
### 希望能予以思路!感激不尽!

506874511 发表于 2021-5-28 10:06

python专业爬虫。能满足你的需求!

gana 发表于 2021-5-28 10:11

比较笨的一个办法:用winform做客户端来爬取数据,添加webbrowser控件,在控件里把网页加载完后,再读取控件的内容。 为了美观,可以吧控件隐藏。

weiyuhero 发表于 2021-5-28 10:20

gana 发表于 2021-5-28 10:11
比较笨的一个办法:用winform做客户端来爬取数据,添加webbrowser控件,在控件里把网页加载完后,再读取控 ...

我也有个问题 要问这样稳定吗要是网页加载不出来   重新开始爬虫   爬出来的数据 怎么验证已经爬过呢?

zhangpan0912 发表于 2021-5-28 10:27

两个思路。
1.异步加载。以Ajax为例,找到网络的请求即可。
2.同步加载,使用js渲染页面显示效果。这种一般需要找到页面的渲染数据,直接解析即可。

onedayismyway 发表于 2021-5-28 10:29

这应该是网页动态生成数据造成的,你分析下请求接口,估计有你想要的直接数据的请求,否则即使你拿到了网页数据,你还是需要分析提取。另一个使用webdriver,操作浏览器获取网页源码也可以。

Cool_Breeze 发表于 2021-5-28 10:31

js动态加载的数据,对于我这种不懂js的人,感觉好难!

pwp 发表于 2021-5-28 10:32

写个求助帖都运用了Markdown,膜拜大佬。

cdj68765 发表于 2021-5-28 11:22

对于这种需要网站加载后再出来数据的,一般建议直接上Selenium或者CefSharp

lene 发表于 2021-5-28 12:47

如果能把url和参数贴出来,可以一起看看
页: [1] 2
查看完整版本: C#爬虫问题