成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

手把手教你使用XPath爬取免費代理IP

開發 前端
初學者Python爬蟲爬數據太難啦,構造正則表達式的時候,太煩瑣了,眼睛都看花了,這篇文章我們教你如何使用XPath來爬取快代理中的免費代理IP,告別眼花,告別IP被封的煩惱。

[[409033]]

好,我是霖hero。

前言

可能有人說,初學者Python爬蟲爬數據太難啦,構造正則表達式的時候,太煩瑣了,眼睛都看花了,而且前一秒還可以愉快地爬取,下一秒IP就被封了,這還爬個屁啊,不爬了。哎,不要著急,這篇文章我們教你如何使用XPath來爬取快代理中的免費代理IP,告別眼花,告別IP被封的煩惱。

XPath

首先我們來簡單了解一下XPath,想要了解更多XPath,我們可以打開W3school官方文檔進行了解。

什么是 XPath?

  • XPath是XML路徑語言(XML Path Language);
  • XPath 使用路徑表達式在 XML 文檔中進行導航;
  • XPath 包含一個標準函數庫;
  • XPath 是 XSLT 中的主要元素;
  • XPath 是一個 W3C 標準;

XPath作用是什么?

  • XPath用來確定XML文檔中某部分位置的語言
  • XPath在XML文檔中查找信息的語言
  • XPath用于在XML文檔中通過元素和屬性進行導航。

XPath 含有超過 100 個內建的函數。這些函數用于字符串值、數值、日期和時間比較、節點和 QName 處理、序列處理、邏輯值等等。在Python爬蟲中,我們完成可以使用XPath來做相應的信息抽取。

XPath——常用規則

簡單了解一下XPath后,我們來看看它的常用規則,如下表:

我們來簡單說一個示例:

  1. //title[@*] 

這就是一個XPath規則,它代表選擇選取所有帶有屬性的 title 元素。

好了,大概了解了XPath的常用規則和用法了,我們來添加一個Chrome瀏覽器的小插件——XPath Helper,這個小插件可以大大提高了我們使用XPath的效率。

XPath Helper的添加與使用

XPath Helper的添加

首先打開Chrome商店搜索XPath Helper,如下圖所示:

點擊方框2,將插件添加至Chrome中,如下圖所示:

這里我們推薦點擊下圖的小圖釘,更方便我們使用XPath Helper插件

這樣XPath Helper插件就添加完畢了,接下來我們簡單演示一下如何使用該插件。

XPath Helper的使用

首先我們打開今天要爬取的快代理網站并打開開發者工具,找到我們要爬取內容的節點,如下圖所示:

然后打開我們添加的插件,并輸入XPath規則,如下圖所示:

我們根據了table節點信息,來構造了XPath規則,輸入XPath規矩可以直接看到返回的是什么,這樣我們就不需要每構成一次就在程序里運行看看能不能返回我們想要的值,這樣大大提高我們的效率。

實戰演練

爬取首頁

我們首先打開快代理免費代理網站并打開開發者工具,如下圖所示:

通過觀察可以發現,頁面的URL最后的那個數字就是頁碼,也就是我們進行翻頁的重要參數,這里我們使用了page變量為我們翻頁的參數,具體代碼如下:

  1. headers={ 
  2.     'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.106 Safari/537.36' 
  3. def get_page(page): 
  4.     url='https://www.kuaidaili.com/free/inha/'+str(page) 
  5.     response=requests.get(url,headers=headers) 
  6.     #數據類型轉換 
  7.     html = parsel.Selector(response.text) 
  8.     parse_page(html) 

首先我們構造了一個請求頭,然后定義了一個get_page()方法,這里要注意的是,當我們獲取了請求頁面的文本數據時,要進行數據類型的轉換,轉換為XPath可以查找信息的HTML文本,也就是創建了一個parsel.Selector對象,轉換后,我們就調用parse_page()方法,并傳入html參數。

XPath規則提取內容

我們已經成功提取了網頁的HTML文本,接下來我們開始利用XPath規則來提取想要的內容,首先我們要確定XPath規則提取內容的范圍,如下圖所示:

從圖中我們可以看到table節點里包含我們要提取內容,然后我們使用XPath Helper插件來方便我們確定是否能準確提取目標內容,如下圖所示:

圖中的方框就是我們要提取內容的范圍,確定范圍后,我們確定提取內容對應的XPath規則,如下圖所示:

好了,我們成功提取到了IP地址,經過觀察,我們只要把圖中左上角的方框中IP改為PORT,這樣就可以提取到了端口號了,具體實現代碼如下:

  1. def parse_page(html): 
  2.     #XPath的匹配范圍 
  3.     parse_list = html.xpath('//table[@class="table table-bordered table-striped"]/tbody/tr'
  4.     for tr in parse_list: 
  5.         parse_lists = {} 
  1. http=tr.xpath('./td[@data-title="類型"]//text()').extract_first() 
  2.       num=tr.xpath('./td[@data-title="IP"]//text()').extract_first() 
  3.       port=tr.xpath('./td[@data-title="PORT"]//text()').extract_first() 
  4.       parse_lists[http]=num+':'+port 
  5.       time.sleep(0.1) 
  6.       print(parse_lists) 

要注意的是:

  • 我們在構造XPath規則時,如://td[@data-title="IP"],我們要將最前面的/改為.,否則只匹配頁面的第一個內容;
  • 在XPath規則中,通過使用text()方法獲取節點內部的文本,如在規則后面加//text();
  • 調用extract_first()返回的是一個string字符串,是list數組里面的第一個字符串。

最后我們通過構造一個parse_lists字典,來使我們的數據更好看。

循環遍歷

我們使用一個for循環,來遍歷翻頁,具體代碼為:

  1. if __name__ == '__main__'
  2.     for page in range(1,3): 
  3.         get_page(page) 

好了,這樣我們就成功爬取了快代理的免費代理IP的前兩頁,我們可以根據需要來進行保存免費代理IP。

結果展示

 

責任編輯:姜華 來源: Python爬蟲與數據挖掘
相關推薦

2020-03-08 22:06:16

Python數據IP

2021-09-29 08:53:36

scrapy框架Twisted

2021-07-14 09:00:00

JavaFX開發應用

2025-05-07 00:31:30

2021-08-04 08:55:02

Socket Java開發

2022-12-07 08:42:35

2021-08-02 07:35:19

Nacos配置中心namespace

2009-03-18 11:36:21

代理服務器下載MyEclipse7.

2011-01-10 14:41:26

2011-05-03 15:59:00

黑盒打印機

2021-05-08 08:04:05

Python爬取素材

2021-01-19 09:06:21

MysqlDjango數據庫

2023-04-26 12:46:43

DockerSpringKubernetes

2022-01-08 20:04:20

攔截系統調用

2022-03-14 14:47:21

HarmonyOS操作系統鴻蒙

2022-07-27 08:16:22

搜索引擎Lucene

2022-07-22 12:45:39

GNU

2020-05-15 08:07:33

JWT登錄單點

2022-10-30 10:31:42

i2ccpuftrace

2021-03-12 10:01:24

JavaScript 前端表單驗證
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一区二区精品 | 日本在线一区二区三区 | 日韩久久精品 | 亚洲瑟瑟 | 欧美日韩精品一区二区 | 在线看亚洲 | 日本在线免费 | 久久久国产一区二区 | 丝袜毛片 | 亚洲精品www久久久久久广东 | 日韩中文字幕2019 | 日本一区视频在线观看 | 97视频成人| 91久久 | 国产极品91 | 99福利视频导航 | 日韩色视频 | 成人小视频在线免费观看 | 成人片免费看 | 欧美一区二区在线播放 | 亚洲天堂久久 | 97精品超碰一区二区三区 | 国产三级电影网站 | 国产夜恋视频在线观看 | 91精品久久久久久久久中文字幕 | 免费观看一级黄色录像 | 国产精品自拍视频网站 | 国产精品久久久久久久久久免费看 | 99国产精品99久久久久久 | 国产免费让你躁在线视频 | 伊人网在线播放 | 夜夜爽99久久国产综合精品女不卡 | 亚洲视频免费在线观看 | 国产福利资源在线 | 久久久91精品国产一区二区三区 | av中文字幕在线观看 | 天天拍天天操 | 黄色免费观看网站 | 国产精品永久免费视频 | 999久久久精品 | 国产精品久久久久久久久图文区 |