python运势预测程序_Python 爬虫系列之一——每日星座运势
開個新坑——Python 爬蟲系列,最近腦子里有很多非常有趣的想法,但實現起來都需要一些簡單的爬蟲知識,如果放在趣學 Python 系列,會顯得文章太長,干脆拿出來開個新坑。這個系列本質上是為趣學 Python 系列提供數據支撐的,我會盡量從最簡單的爬蟲開始寫,保證零基礎一樣能看懂。
Python 爬蟲已經是爛大街的東西了,幾乎每個人在學習 Python 后第一個實戰項目就是爬蟲,入門門檻低,上手簡單,容易產生成就感,與此同時,大規模數據爬取的技術含量又保證了深入學習的必要性,簡直是學習技術的最佳對象。今天,我們來實現一個最簡單的爬蟲,用以爬去各個星座的每日運勢。
0x00 基本環境
Python 版本:3.7.1
用到的庫:lxml、requests
Pytthon 經常會用到不同的庫,有時甚至是不同的版本,如果自己配置包管理工具和虛擬環境非常麻煩,哪怕 pipenv 將二者進行了結合用起來也不是很方便,建議安裝 Anaconda,省時省心,用法也簡單,各個虛擬環境隨時切換,極為方便。
0x01 基礎知識
首先介紹下幾個基本的概念,方便大家對爬蟲如何工作有一個簡單的了解。
所謂爬蟲,其實就是用程序模擬人來登錄站,然后提取我們需要的信息。訪問網站是通過 HTTP 協議來實現的,其工作模型如下圖:
那么我們需要了解的第一個知識點就是如何通過 Python 來發送請求。在我們的爬蟲中,訪問網頁這部分工作使用 requests 庫來實現,通過 requests 庫模擬發送請求,然后接收網站的響應,也就是傳回的 html 數據。
提取指定節點包含的信息一般有兩種方式:正則表達式或 XPath,其中正則表達式比較繁瑣,XPath 簡單易懂,還可以在 Chrome 中直接復制,因此本文選用 XPath 來定位節點。需要注意的是 XPath 定位的一組符合條件的節點,因此返回一個 list ,其中對應的第 0 個元素一般就是我們需要的。
基礎知識介紹完了,下面我們開始進入正題。
0x02 分析網頁
首先需要對要爬取的網頁進行分析。
我們需要爬取的網址為 http://www.xzw.com/fortune/aries/ ,在瀏覽器中打開網頁,然后在相應元素上右鍵點擊檢查,我們就可以在分割窗口中看到該元素的信息了,如下圖所示:
然后找到相應節點,右鍵就可以復制 XPath 了。
需要注意的是,XPath 定位的是某個節點,而我們需要用到的是對應節點的文本,因此需要用到 text 方法。
比如,短評這個 label 的 XPath 為:
在代碼中我們可以這么使用:
另外需要注意,有時候我們需要用到節點的屬性,比如綜合運勢為 4 星,這個就是通過節點的 style 屬性來體現的。
其中 4 星對應的 em 標簽寬度為 64px,可以通過 attrib 獲得:
這樣返回的是字符串 ,然后可以只保留數字就可以了:
0x03 代碼實現
1. 導入需要的庫
2. 發送請求
3. 將返回的數據格式化為節點樹
4. 提取節點數據
完整代碼如下:
總結
以上是生活随笔為你收集整理的python运势预测程序_Python 爬虫系列之一——每日星座运势的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于MATLAB的图像压缩感知设计(含源
- 下一篇: installshield 脚本 在卸载