一、導入需要用到的庫
在這個通用公式里,我們要用到的庫只有兩個,一個是requests,另一個就是lxml里的etree,并且在通用公式中,第一個步驟的代碼不需要進行任何改動,具體代碼如下:
import requests from lxml import etree
二、確定URL和請求頭
url就是我們想要爬取的網站的鏈接,而請求頭是從網站上的源代碼處復制過來的,具體方法如下:
url='https://www.XXX.com/' headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36', 'Referer': 'https://www.XXX.com/'}
三、編寫獲取數據的函數
首先我們要定義一個函數,因為都是實現獲取數據的功能,所以我們將其命名為:get_data(),然后將設置好的headers傳入,目的是為了防止反爬。而encoding對應的是編碼方式,這是為了防止獲取到的網頁內容亂碼而設置的。緊接著我們就是要設置selector選擇器,然后通過xpath方法來獲取內容對應的xpath路徑,具體獲取方法為:右鍵點擊網頁任意空白處,選擇檢查。然后在彈出的窗口中,點擊左上角的箭頭符號,將箭頭移動到你想要獲取的數據位置,點擊定位一下,然后再回到網頁源代碼處,點擊右鍵,選擇copy,再選擇copy xpath,然后再將復制好的路徑粘貼到我們編寫的代碼中。因為我們想獲取的是標題對應的文本內容,所以我們需要在復制到的xpath路徑后加上:/text()
具體實現代碼如下:
def get_data(url): response = requests.get(url, headers=headers) response.encoding = 'utf-8' selector = etree.HTML(response.text) content = selector.xpath('//*[@id="newpcnews-1"]/div/div[2]/a[1]/div/text()') print(content)
四、調用函數
函數定義好之后,我們就需要調用它,調用的方法就是將定義好的函數名稱復寫一遍,然后再將url傳入即可。也可理解為這是在給整個代碼設置一個開關,只有有了這一個開關,運行代碼時程序才能跑起來。具體代碼如下:
get_data(url)
完整代碼
import requests from lxml import etree url='https://www.XXX.com/' headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36', 'Referer': 'https://www.XXX.com/'} def get_data(url): response = requests.get(url, headers=headers) response.encoding = 'utf-8' selector = etree.HTML(response.text) content = selector.xpath('//*[@id="newpcnews-1"]/div/div[2]/a[1]/div/text()') print(content) get_data(url)
回答所涉及的環境:聯想天逸510S、Windows 10。
一、導入需要用到的庫
在這個通用公式里,我們要用到的庫只有兩個,一個是requests,另一個就是lxml里的etree,并且在通用公式中,第一個步驟的代碼不需要進行任何改動,具體代碼如下:
二、確定URL和請求頭
url就是我們想要爬取的網站的鏈接,而請求頭是從網站上的源代碼處復制過來的,具體方法如下:
三、編寫獲取數據的函數
首先我們要定義一個函數,因為都是實現獲取數據的功能,所以我們將其命名為:get_data(),然后將設置好的headers傳入,目的是為了防止反爬。而encoding對應的是編碼方式,這是為了防止獲取到的網頁內容亂碼而設置的。緊接著我們就是要設置selector選擇器,然后通過xpath方法來獲取內容對應的xpath路徑,具體獲取方法為:右鍵點擊網頁任意空白處,選擇檢查。然后在彈出的窗口中,點擊左上角的箭頭符號,將箭頭移動到你想要獲取的數據位置,點擊定位一下,然后再回到網頁源代碼處,點擊右鍵,選擇copy,再選擇copy xpath,然后再將復制好的路徑粘貼到我們編寫的代碼中。因為我們想獲取的是標題對應的文本內容,所以我們需要在復制到的xpath路徑后加上:/text()
具體實現代碼如下:
四、調用函數
函數定義好之后,我們就需要調用它,調用的方法就是將定義好的函數名稱復寫一遍,然后再將url傳入即可。也可理解為這是在給整個代碼設置一個開關,只有有了這一個開關,運行代碼時程序才能跑起來。具體代碼如下:
完整代碼
回答所涉及的環境:聯想天逸510S、Windows 10。