zoukankan      html  css  js  c++  java
  • .net core + headless chrome实现动态网页爬虫

    一般的http请求库只能够抓取到网页的静态内容,如果想抓取通过js动态生成的内容可以使用没有gui的browser库,之前许多人会使用phantomjs作为headless browser,不过现在phantomjs团队已经宣布停止更新工作,需要一款替代库,于是这里就采用了headless chrome来进行动态网页内容抓取。

    爬虫实现如下:

    1.在.net core项目中引用如下nuget包

    Selenium.WebDriver
    Selenium.WebDriver.ChromeDriver

    注意:引用Selenium.WebDriver.ChromeDriver后,会在代码目录中copy出chromedriver.exe文件,exe文件只能运行与windows平台下,所以我们需要去网站(http://chromedriver.storage.googleapis.com/index.html)下载当前最新的chromedriver程序linux版,并将程序添加到项目中,属性设置为复制到输出目录。这样导出的程序才可以在linux和windwos平台下都正常运行。

    注意2:爬虫的宿主服务器中需要安装和chromedriver一致版本的chrome版本(两个都安装最新版就可以)

    2.爬虫代码

    class Program
        {
            static void Main(string[] args)
            {
                ChromeOptions op = new ChromeOptions();
                op.AddArguments("--headless");//开启无gui模式
                op.AddArguments("--no-sandbox");//停用沙箱以在Linux中正常运行
                ChromeDriver cd = new ChromeDriver(Environment.CurrentDirectory, op,TimeSpan.FromSeconds(180));
                cd.Navigate().GoToUrl("http://chart.icaile.com/sd11x5.php");
                string text = cd.FindElementById("fixedtable").Text;
                cd.Quit();
                Console.WriteLine(text);
                Console.Read();
            }
        }
  • 相关阅读:
    font-svg
    转 让NET C# 程序独立运行(脱离 .NET Framework运行,绿色运行) 未验证
    自定义纸张 未验证
    CSS 各种形状
    ZIP压缩与解压
    FindWindow SendMessage
    js 简单的滑动4
    js 简单的滑动3
    js 简单的滑动2
    Linux 下的php,nginx,mysql的安装
  • 原文地址:https://www.cnblogs.com/wangyunjie/p/9078130.html
Copyright © 2011-2022 走看看