Python爬蟲學習篇(1)

什麼是爬蟲

網絡爬蟲,是按照一定邏輯或者規則,自動去抓取互聯網上的程序

瀏覽網頁的基本流程

我們在瀏覽器地址欄裏面輸入一個地址,敲擊回車後,瀏覽器會通過DNS查找到對應的IP地址,然後向IP地址對應的服務器發送請求,隨後服務器會響應請求並且發送html頁面,最後瀏覽器會解析發送過來的html頁面展示出來,也就是我們看到的網頁了

這裏有兩個重要概念,分別爲 ‘請求’和 ‘響應
請求(request):
請求是客戶端發送給服務器的,
請求分爲四部分:請求方法,請求的地址,請求頭和請求體
瞭解詳情點擊此處
響應(response):
響應是服務器發送給客戶端的,
響應分爲三部分:狀態碼,響應頭,響應體
瞭解詳情點擊此處

準備工作

本文使用requests模塊
安裝方法 :pip install requests 或者點擊此處下載
數據獲取方式
我們這裏演示xpath解析方式用於解析html提取數據
pip install lxml

實例

本文拿百度首頁進行演示
鏈接:https://www.baidu.com/
在這裏插入圖片描述
抓取按鈕中的 " 百度一下" 四個字

導入模塊
在這裏插入圖片描述

在這裏插入圖片描述
response就是返回的服務器響應
在這裏插入圖片描述
在這裏插入圖片描述

請求的一些方法 最常用的其實就只有 getpost 兩種方法:
在這裏插入圖片描述
在這裏插入圖片描述

在這裏插入圖片描述
因爲id是唯一的 所以我們可以直接xpath定位到id=‘su’的結點直接提取value
具體xpath解析語法請參照 xpath解析語法
在這裏插入圖片描述
在這裏插入圖片描述

完整代碼

import requests
from lxml import etree

# 定製請求頭
# 請求頭,用來說明服務器使用的附加信息
headers = {
    'Referer': 'https://www.baidu.com/',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3641.400 QQBrowser/10.4.3284.400'
}
# 對https://www.baidu.com/發起get請求
response = requests.get('https://www.baidu.com/', headers=headers)
response.encoding = 'utf-8'
# 獲取源碼
sourceCode = response.text
# etree.HTML():構造了一個XPath解析對象並對HTML文本進行自動修正
tree = etree.HTML(sourceCode)
# XPath 使用路徑表達式來選取 XML 文檔中的節點或節點集
# 提取input框中的value屬性 也就是 '百度一下' 四個字
submitText = tree.xpath("//input[@id='su']/@value")
print(submitText)

那麼第一篇博客就這樣結束了,希望可以對你們有幫助,感謝閱讀

PS:pycharm背景圖片
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章