今天研究了下网络爬虫,有不少这方面的文章,开始找到的是用HttpRequest进行抓取,但是这种抓取对某些网站显然是不行的。比如知乎,要抓取信息必须先登录。又搜索这方面的内容,网上信息繁杂且混乱,而且关于C#方面的内容十分的少。
在研究了很久,尝试了更久之后,终于初步实现了这一功能,代码位置:https://codechina.csdn.net/wjwlsyd/netcrawler/-/commits/master
我用的是VS2019,有兴趣的可以下载下来看一下。
做的时候遇到一个坑,Selenium的ChromeDriver版本必须和本地的Chrome版本保持一致,否则会报错。但是似乎本地的Chrome版本一直是自动更新的,难道每次都得改?这一点我没做深入研究,如果你们遇到这样的问题可以去网上搜索一下,网上关于这方面的内容很多都是Python的,不过各位仔细找一下应该也可以找到,我就不在这里赘述了。
1.创建一个控制台程序,然后把Selenium相关的包从Nuget上下载安装上。
2.处理登录逻辑
处理登录的步骤大概是这样:
1)首先使用Selenium启动浏览器并跳转至目标界面(知乎)
2)知乎会跳转至登录界面,这时,在程序里Sleep一段时间,或者打个断点。当程序运行至断点时ÿ