爬蟲 --聚焦爬蟲篇


聚焦爬蟲介紹

1.編碼流程

  • 指定url
  • 發起請求
  • 獲取響應數據
  • 數據解析
  • 持久化存儲

聚焦爬蟲詳情

- 如何實現數據解析?

  • 正則
  • bs4
  • xpath

- 數據解析的原理

  • 實現標簽定位

  • 將標簽存儲的文本內容或者相關屬性值進行提取

- bs4數據解析

1.環境准備
   - pin install bs4
   - pip install lxml
2.bs4解析原理
    - 實例化一個Beautiful Soup對象,必須將即將被解析的頁面源碼加載到該實例化對象中
    - 調用該對象中相關的屬性或者方法進行標簽的定位和內容的提取

3.如何實例化一個BeautifulSoup對象
    - 本地加載:  soup = BeautifulSoup(fp,'lxml')
    - 網絡加載:  soup = BeautifulSoup(page_text,'lxml')
4.相關的屬性和方法
- soup.tagName -->可以定位標簽,定位源碼中第一次出現的標簽,返回的永遠是一個單數
- soup.find() --->基於屬性定位實現的標簽定位
- soup.find_all() --->基於屬性定位實現的所有標簽定位,返回一個列表
- 取文本:
- string : 取得標簽中直系的文本內容
- text/get_text() :取得的是標簽下的所有內容
- 取屬性:
- tag['attrName'] #此種方式

-select: 使用選擇器定位標簽 返回的是列表
- 標簽,類,id選擇器 select('選擇器')
- 層級選擇器
- 單層級 '.tang>ul>li' 
- 多層級 '.tang li'

- xpath數據解析

1.特點:通用性比較強

2.環境安裝: pip install lxml

3.解析原理:

  - 實例化一個etree對象,且將解析頁面源碼加載到該對象中
  - 使用該對象中xpath方法接合xpath表達式進行標簽定位和數據解析提取
4.etree對象實例化   - 本地加載: tree = etree.parse("file_path")   - 網絡加載 tree = etree.HTML(page_text)
5.相關的屬性和方法
#常用的xpath的表達式:基於標簽的層級實現定位

    - /:從跟標簽開始實現層級定位
    - //:從任意位置實現標簽定位
    - 屬性定位: //tag[@class="name"]
    - 索引定位: //div[@class="name"]//li[5]
    - 取文本:
        -取得直系文本內容:/text()
        -取得所有文本內容://text()
    - 取屬性:/@attrName

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM