Python網頁數據抓取常用的庫及方法介紹
摘要:以下是Python網絡數據抓取常用的6個庫的詳細介紹,包括它們的概述以及每個庫中最常用的10個函數(如果某些庫常用函數不足10個,則列出所有常用函數)。每個函數都附帶功能描述、用法說明和使用示例。這些庫在網絡爬蟲、數據采集和網頁解析領域被廣泛使用。
1. Requests
- 概述:Requests 是一個簡單而強大的HTTP請求庫,用于發送HTTP請求和處理響應,適合網絡數據抓取和API交互。
1.1 常用函數:
-
requests.get()
功能:發送GET請求獲取網頁內容或API數據。
用法:requests.get(url, params=None, headers=None)
,url
是目標地址,params
是查詢參數,headers
是請求頭。
示例:import requests response = requests.get('https://api.github.com') print(response.status_code) # 輸出: 200 (請求成功) print(response.json()) # 輸出: JSON格式的響應內容
-
requests.post()
功能:發送POST請求,通常用于提交表單數據或API調用。
用法:requests.post(url, data=None, json=None, headers=None)
,data
是表單數據,json
是JSON數據。
示例:import requests payload = {'username': 'test', 'password': 'pass'} response = requests.post('https://httpbin.org/post', data=payload) print(response.json()) # 輸出: 服務器返回的表單數據
-
requests.head()
功能:發送HEAD請求,僅獲取響應頭信息,不返回響應體。
用法:requests.head(url, headers=None)
,url
是目標地址。
示例:import requests response = requests.head('https://www.example.com') print(response.headers) # 輸出: 響應頭信息
-
requests.put()
功能:發送PUT請求,用于更新資源。
用法:requests.put(url, data=None, json=None)
,data
是更新數據。
示例:import requests payload = {'key': 'value'} response = requests.put('https://httpbin.org/put', json=payload) print(response.json()) # 輸出: 服務器返回的更新數據
-
requests.delete()
功能:發送DELETE請求,用于刪除資源。
用法:requests.delete(url)
,url
是目標地址。
示例:import requests response = requests.delete('https://httpbin.org/delete') print(response.status_code) # 輸出: 200 (刪除成功)
-
requests.Session()
功能:創建會話對象,保持連接狀態(如cookie)。
用法:requests.Session()
示例:import requests session = requests.Session() session.get('https://httpbin.org/cookies/set/sessioncookie/123456789') response = session.get('https://httpbin.org/cookies') print(response.json()) # 輸出: 會話中的cookie
-
requests.Response.status_code
功能:獲取HTTP響應狀態碼。
用法:response.status_code
,response
是請求返回的對象。
示例:import requests response = requests.get('https://www.example.com') print(response.status_code) # 輸出: 200 (請求成功)
-
requests.Response.text
功能:以字符串形式獲取響應內容(適用于文本)。
用法:response.text
,response
是請求返回的對象。
示例:import requests response = requests.get('https://www.example.com') print(response.text[:100]) # 輸出: 網頁內容的前100個字符
-
requests.Response.json()
功能:將響應內容解析為JSON格式。
用法:response.json()
,response
是請求返回的對象。
示例:import requests response = requests.get('https://api.github.com') data = response.json() print(data) # 輸出: JSON解析后的數據
-
requests.Response.headers
功能:獲取響應頭信息。
用法:response.headers
,response
是請求返回的對象。
示例:import requests response = requests.get('https://www.example.com') print(response.headers) # 輸出: 響應頭字典
2. Beautiful Soup
- 概述:Beautiful Soup 是一個用于解析HTML和XML文檔的庫,適合從網頁中提取結構化數據。
2.1 常用函數:
-
bs4.BeautifulSoup()
功能:創建BeautifulSoup對象,解析HTML或XML內容。
用法:bs4.BeautifulSoup(markup, parser)
,markup
是HTML/XML字符串,parser
是解析器(如'lxml')。
示例:from bs4 import BeautifulSoup html = "<p>Hello, World!</p>" soup = BeautifulSoup(html, 'html.parser') print(soup.p.text) # 輸出: Hello, World!
-
BeautifulSoup.find()
功能:查找第一個匹配的標簽或元素。
用法:soup.find(name, attrs)
,name
是標簽名,attrs
是屬性字典。
示例:from bs4 import BeautifulSoup html = "<div><p>First</p><p>Second</p></div>" soup = BeautifulSoup(html, 'html.parser') p_tag = soup.find('p') print(p_tag.text) # 輸出: First
-
BeautifulSoup.find_all()
功能:查找所有匹配的標簽或元素,返回列表。
用法:soup.find_all(name, attrs)
,name
是標簽名,attrs
是屬性字典。
示例:from bs4 import BeautifulSoup html = "<div><p>First</p><