【C#】C#爬虫Selenium爬Chrome网页,可以从直接启动本地浏览器,从而带有本地cookies,防止反爬虫!
问题描述1:
c#selenium爬虫,我们正常启动dirver:
IWebDriver driver = new ChromeDriver(service,chop);
打开的是一个全新的浏览器,这个浏览器没有保存cookies账号密码,也没有收藏的网页,也就是说我们每次打开的是一个全新的浏览器,如果你爬的网页需要登录账号密码,不仅麻烦还容易被防爬。
如下图:selenium正常启动的浏览器不带有缓存书签等信息。
如果我们能直接调用本地的浏览器,如下图,那么每次启动爬虫的时候,打开浏览器是本地的浏览器,里面带有cookies和保存的账号密码,这样会方便很多。效果如下:
解决方案:
我们需要在启动driver是option选项里面进行如下配置,就可以启动本地的浏览器作为selenium driver。
ChromeOptions chop = new ChromeOptions();
chop.AddArgument("--user-data-dir=C:/Users/234/AppData/Local/Google/Chrome/User Data");//定义到本地chrome浏览器路径
chop.AddArgument("--remote-debugging-port=9222");//浏览器属性路径空格加上--remote-debugging-port=9222"
chop.AddArgument("--user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36");//模拟用户,防爬
var service = ChromeDriverService.CreateDefaultService(@".", "chromedriver.exe");
IWebDriver driver = new ChromeDriver(service,chop);
driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10);
Thread.Sleep(3000);//待浏览器反应
//driver.Navigate().GoToUrl("https://chat.baidu.com/?from=chat_logout");
driver.Navigate().GoToUrl(“www.baidu.com”);//输入你的网址
```
本地浏览器路径如下:(不要最后的default)
打开本地浏览器快捷方式的属性,在模板后加上一行代码:–remote-debugging-port=9222
完成上面的操作,我们就可以直接selenium打开本地的浏览器啦!
问题描述2:
C#爬虫Selenium爬百度热搜,自动保存百度热搜标题和大纲以及对应的图片,然后利用AI话术生成文案,可以利用这个批量生成热搜营销号文章。(项目文件在我的博客)下载链接:https://download.csdn.net/download/qq_44795792/88255407