1.數(shù)據(jù)獲取
網(wǎng)頁數(shù)據(jù)獲取有python自帶的urllib,也有第三方庫requests
requests庫常用方法
requests.request(url) | 構造一個請求 |
requests.get(url,params=None) | 發(fā)送get請求,結果為response對象 |
requests.post(url,data=None,json=None) | 發(fā)送post請求 |
requests.put() | 發(fā)送put請求 |
requests.head() | 獲取html的頭信息 |
requests.delete() | 提交刪除請求 |
requests.patch() | 提交局部修改的請求 |
requests.session() 返回session對象,可以用session對象發(fā)起帶有session信息的請求,如
import requests
url='www.baidu.com'
data={'username':'zhangsan','password':'123'}
#獲取session對象
s=requests.session()
#session發(fā)起post請求獲取響應
resp=s.post(url,data=data)
#此時的session對象帶有session信息
url1='www.baidu.com/xxx'
resp1=s.get(url1)
response對象的常用屬性或方法
response對象是requests.get()的返回結果文章來源:http://www.zghlxwxcb.cn/news/detail-476175.html
response.status_code | 響應狀態(tài)碼 |
response.content | 二進制數(shù)據(jù)(圖片、視頻等) |
response.text | 字符串數(shù)據(jù) |
response.encoding | 定義response對象的編碼 |
response.cookies | 獲取請求后的cookie |
response.url | 獲取請求網(wǎng)址 |
response.json() | 內(nèi)置的JSON解碼器 |
response.headers | 以字典對象存儲服務器響應頭,鍵不區(qū)分大小寫 |
2.數(shù)據(jù)解析
requests獲取到響應后,需要其他工具對響應數(shù)據(jù)進行解析,常用有xpath、beautifulsoup、正則表達式、pyquery等文章來源地址http://www.zghlxwxcb.cn/news/detail-476175.html
xpath(XML Path Language)
nodename | 選取此節(jié)點的所有子節(jié)點 |
/ | 根節(jié)點 |
// | 匹配選擇的節(jié)點,不考慮其位置 |
. | 當前節(jié)點 |
.. | 當前節(jié)點的父節(jié)點 |
/text() | 獲取當前節(jié)點下的文本內(nèi)容 |
/@xx | 獲取當前節(jié)點下標簽的屬性xx |
| | 或 |
xpath('/body/div[1]') | 選取body下第一個div節(jié)點 |
xpath('/body/div[last()]') | 選取body下最后一個div節(jié)點 |
xpath('/body/div[last()-1]') | 選取body下倒數(shù)第二個div節(jié)點 |
xpath('/body/div[position()<3]') | 選取body下前兩個div節(jié)點 |
xpath('/body/div[@class]') | 選取body下帶有class屬性的div節(jié)點 |
xpath('/body/div[@class=main]') | 選取body下class屬性值為main的div節(jié)點 |
xpath('/body/div[price>35.00]') | 選取body下price元素大于35的div節(jié)點 |
到了這里,關于python-requests庫(爬蟲)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!