亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

用C#+Selenium+ChromeDriver爬取網(wǎng)頁(模擬真實(shí)的用戶瀏覽行為)

 更新時(shí)間:2022年01月25日 17:31:25   作者:DotNetCore實(shí)戰(zhàn)  
這篇文章主要介紹了用C#+Selenium+ChromeDriver爬取網(wǎng)頁,模擬真實(shí)的用戶瀏覽行為,需要的小伙伴可以參考一下

以下文章來源于公眾號(hào):DotNetCore實(shí)戰(zhàn)

1.背景

 Selenium是一個(gè)用于Web應(yīng)用程序測(cè)試的工具。Selenium測(cè)試直接運(yùn)行在瀏覽器中,就像真正的用戶在操作一樣。而對(duì)于爬蟲來說,使用Selenium操控瀏覽器來爬取網(wǎng)上的數(shù)據(jù)那么肯定是爬蟲中的殺手武器。這里,我將介紹selenium + 谷歌瀏覽器的一般使用。

2.需求

在平常的爬蟲開發(fā)中,有時(shí)候網(wǎng)頁是一堆js堆起來的代碼,涉及很多異步計(jì)算,如果是普通的http 控制臺(tái)請(qǐng)求,那么得到的源文件是一堆js ,需要自己在去組裝數(shù)據(jù),很費(fèi)力;但是采用Selenium+ChromeDriver可以達(dá)到所見即所得的完美效果。

3.實(shí)現(xiàn)方式

項(xiàng)目結(jié)構(gòu):為了方便使用,用的winform程序,附nuget包

 以下是form1.cs的代碼,這里就只放關(guān)鍵方法代碼了。需要安裝最新的chrome瀏覽器+代碼中使用的chromedriver是 v2.9.248315

 #region 異常 ?退出chromedriver

? ? ? ? [DllImport("user32.dll", EntryPoint = "FindWindow")]
? ? ? ? private extern static IntPtr FindWindow(string lpClassName, string lpWindowName);

? ? ? ? [DllImport("user32.dll", EntryPoint = "SendMessage")]
? ? ? ? public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);

? ? ? ? public const int SW_HIDE = 0;
? ? ? ? public const int SW_SHOW = 5;

? ? ? ? [DllImport("user32.dll", EntryPoint = "ShowWindow")]
? ? ? ? public static extern int ShowWindow(IntPtr hwnd, int nCmdShow);

? ? ? ? /// <summary>
? ? ? ? /// 獲取窗口句柄
? ? ? ? /// </summary>
? ? ? ? /// <returns></returns>
? ? ? ? public IntPtr GetWindowHandle()
? ? ? ? {
? ? ? ? ? ? string name = (Environment.CurrentDirectory + "\\chromedriver.exe");
? ? ? ? ? ? IntPtr hwd = FindWindow(null, name);
? ? ? ? ? ? return hwd;
? ? ? ? }

? ? ? ? /// <summary>
? ? ? ? /// 關(guān)閉chromedriver窗口
? ? ? ? /// </summary>
? ? ? ? public void CloseWindow()
? ? ? ? {
? ? ? ? ? ? try
? ? ? ? ? ? {
? ? ? ? ? ? ? ? IntPtr hwd = GetWindowHandle();
? ? ? ? ? ? ? ? SendMessage(hwd, 0x10, 0, 0);
? ? ? ? ? ? }
? ? ? ? ? ? catch { }
? ? ? ? }

? ? ? ? /// <summary>
? ? ? ? /// 退出chromedriver
? ? ? ? /// </summary>
? ? ? ? /// <param name="driver"></param>
? ? ? ? public void CloseChromeDriver(IWebDriver driver)
? ? ? ? {
? ? ? ? ? ? try
? ? ? ? ? ? {
? ? ? ? ? ? ? ? driver.Quit();
? ? ? ? ? ? ? ? driver.Dispose();
? ? ? ? ? ? }
? ? ? ? ? ? catch { }
? ? ? ? ? ? CloseWindow();
? ? ? ? }

? ? ? ? #endregion 異常 ?退出chromedriver

效果:

說一下思路:

  • 1.跳轉(zhuǎn)到指定的網(wǎng)頁driver.Navigate().GoToUrl
  • 2.確定數(shù)據(jù)源,從driver.PageSource讀取數(shù)據(jù)
  • 3.對(duì)html數(shù)據(jù)進(jìn)行解析

到此這篇關(guān)于用C#+Selenium+ChromeDriver爬取網(wǎng)頁(模擬真實(shí)的用戶瀏覽行為)的文章就介紹到這了,更多相關(guān)用C#+Selenium+ChromeDriver 爬取網(wǎng)頁內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • WinForm實(shí)現(xiàn)狀態(tài)欄跑馬燈效果的方法示例

    WinForm實(shí)現(xiàn)狀態(tài)欄跑馬燈效果的方法示例

    這篇文章主要介紹了WinForm實(shí)現(xiàn)狀態(tài)欄跑馬燈效果的方法,涉及WinForm控件結(jié)合時(shí)間函數(shù)動(dòng)態(tài)操作元素屬性的相關(guān)技巧,需要的朋友可以參考下
    2017-07-07
  • 基于NPOI用C#開發(fā)的Excel以及表格設(shè)置

    基于NPOI用C#開發(fā)的Excel以及表格設(shè)置

    這篇文章主要為大家詳細(xì)介紹了基于NPOI用C#開發(fā)的Excel以及表格設(shè)置,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • C#結(jié)合AForge實(shí)現(xiàn)攝像頭錄像

    C#結(jié)合AForge實(shí)現(xiàn)攝像頭錄像

    最近由于興趣學(xué)習(xí)了下在C#上使用AForge錄制攝像頭視頻并壓縮編碼。總體上來說這個(gè)第三方.net視覺開發(fā)庫還是比較穩(wěn)定的
    2017-09-09
  • Unity UGUI的HorizontalLayoutGroup水平布局組件介紹使用

    Unity UGUI的HorizontalLayoutGroup水平布局組件介紹使用

    這篇文章主要為大家介紹了Unity UGUI的HorizontalLayoutGroup水平布局組件介紹使用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • c#獲取本機(jī)的IP地址的代碼

    c#獲取本機(jī)的IP地址的代碼

    c#獲取本機(jī)的IP地址的代碼,需要的朋友可以參考一下
    2013-03-03
  • C# 設(shè)計(jì)模式系列教程-觀察者模式

    C# 設(shè)計(jì)模式系列教程-觀察者模式

    將一個(gè)系統(tǒng)分割成一個(gè)一些類相互協(xié)作的類有一個(gè)不好的副作用,那就是需要維護(hù)相關(guān)對(duì)象間的一致性。我們不希望為了維持一致性而使各類緊密耦合,這樣會(huì)給維護(hù)、擴(kuò)展和重用都帶來不便。觀察者就是解決這類的耦合關(guān)系的。
    2016-06-06
  • C#七大經(jīng)典排序算法系列(上)

    C#七大經(jīng)典排序算法系列(上)

    這篇文章主要為大家詳細(xì)介紹了C#七大經(jīng)典排序算法系列上篇,冒泡排序,快速排序等,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • Unity3D實(shí)現(xiàn)模型淡入淡出效果

    Unity3D實(shí)現(xiàn)模型淡入淡出效果

    這篇文章主要為大家詳細(xì)介紹了Unity3D實(shí)現(xiàn)模型淡出效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • C#移除所有事件綁定的方法

    C#移除所有事件綁定的方法

    這篇文章主要介紹了C#移除所有事件綁定的方法,實(shí)例分析了C#事件綁定的移除方法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • C#實(shí)現(xiàn)設(shè)置電腦顯示器參數(shù)

    C#實(shí)現(xiàn)設(shè)置電腦顯示器參數(shù)

    這篇文章主要為大家詳細(xì)介紹了如何利用C#實(shí)現(xiàn)設(shè)置電腦顯示器參數(shù),文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)C#有一定的幫助,感興趣的小伙伴可以跟隨小編一起了解一下
    2022-12-12

最新評(píng)論