日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python运势预测程序_Python 爬虫系列之一——每日星座运势

發(fā)布時(shí)間:2025/3/15 python 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python运势预测程序_Python 爬虫系列之一——每日星座运势 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

開(kāi)個(gè)新坑——Python 爬蟲(chóng)系列,最近腦子里有很多非常有趣的想法,但實(shí)現(xiàn)起來(lái)都需要一些簡(jiǎn)單的爬蟲(chóng)知識(shí),如果放在趣學(xué) Python 系列,會(huì)顯得文章太長(zhǎng),干脆拿出來(lái)開(kāi)個(gè)新坑。這個(gè)系列本質(zhì)上是為趣學(xué) Python 系列提供數(shù)據(jù)支撐的,我會(huì)盡量從最簡(jiǎn)單的爬蟲(chóng)開(kāi)始寫(xiě),保證零基礎(chǔ)一樣能看懂。

Python 爬蟲(chóng)已經(jīng)是爛大街的東西了,幾乎每個(gè)人在學(xué)習(xí) Python 后第一個(gè)實(shí)戰(zhàn)項(xiàng)目就是爬蟲(chóng),入門(mén)門(mén)檻低,上手簡(jiǎn)單,容易產(chǎn)生成就感,與此同時(shí),大規(guī)模數(shù)據(jù)爬取的技術(shù)含量又保證了深入學(xué)習(xí)的必要性,簡(jiǎn)直是學(xué)習(xí)技術(shù)的最佳對(duì)象。今天,我們來(lái)實(shí)現(xiàn)一個(gè)最簡(jiǎn)單的爬蟲(chóng),用以爬去各個(gè)星座的每日運(yùn)勢(shì)。

0x00 基本環(huán)境

Python 版本:3.7.1

用到的庫(kù):lxml、requests

Pytthon 經(jīng)常會(huì)用到不同的庫(kù),有時(shí)甚至是不同的版本,如果自己配置包管理工具和虛擬環(huán)境非常麻煩,哪怕 pipenv 將二者進(jìn)行了結(jié)合用起來(lái)也不是很方便,建議安裝 Anaconda,省時(shí)省心,用法也簡(jiǎn)單,各個(gè)虛擬環(huán)境隨時(shí)切換,極為方便。

0x01 基礎(chǔ)知識(shí)

首先介紹下幾個(gè)基本的概念,方便大家對(duì)爬蟲(chóng)如何工作有一個(gè)簡(jiǎn)單的了解。

所謂爬蟲(chóng),其實(shí)就是用程序模擬人來(lái)登錄站,然后提取我們需要的信息。訪問(wèn)網(wǎng)站是通過(guò) HTTP 協(xié)議來(lái)實(shí)現(xiàn)的,其工作模型如下圖:

那么我們需要了解的第一個(gè)知識(shí)點(diǎn)就是如何通過(guò) Python 來(lái)發(fā)送請(qǐng)求。在我們的爬蟲(chóng)中,訪問(wèn)網(wǎng)頁(yè)這部分工作使用 requests 庫(kù)來(lái)實(shí)現(xiàn),通過(guò) requests 庫(kù)模擬發(fā)送請(qǐng)求,然后接收網(wǎng)站的響應(yīng),也就是傳回的 html 數(shù)據(jù)。

提取指定節(jié)點(diǎn)包含的信息一般有兩種方式:正則表達(dá)式或 XPath,其中正則表達(dá)式比較繁瑣,XPath 簡(jiǎn)單易懂,還可以在 Chrome 中直接復(fù)制,因此本文選用 XPath 來(lái)定位節(jié)點(diǎn)。需要注意的是 XPath 定位的一組符合條件的節(jié)點(diǎn),因此返回一個(gè) list ,其中對(duì)應(yīng)的第 0 個(gè)元素一般就是我們需要的。

基礎(chǔ)知識(shí)介紹完了,下面我們開(kāi)始進(jìn)入正題。

0x02 分析網(wǎng)頁(yè)

首先需要對(duì)要爬取的網(wǎng)頁(yè)進(jìn)行分析。

我們需要爬取的網(wǎng)址為 http://www.xzw.com/fortune/aries/ ,在瀏覽器中打開(kāi)網(wǎng)頁(yè),然后在相應(yīng)元素上右鍵點(diǎn)擊檢查,我們就可以在分割窗口中看到該元素的信息了,如下圖所示:

然后找到相應(yīng)節(jié)點(diǎn),右鍵就可以復(fù)制 XPath 了。

需要注意的是,XPath 定位的是某個(gè)節(jié)點(diǎn),而我們需要用到的是對(duì)應(yīng)節(jié)點(diǎn)的文本,因此需要用到 text 方法。

比如,短評(píng)這個(gè) label 的 XPath 為:

在代碼中我們可以這么使用:

另外需要注意,有時(shí)候我們需要用到節(jié)點(diǎn)的屬性,比如綜合運(yùn)勢(shì)為 4 星,這個(gè)就是通過(guò)節(jié)點(diǎn)的 style 屬性來(lái)體現(xiàn)的。

其中 4 星對(duì)應(yīng)的 em 標(biāo)簽寬度為 64px,可以通過(guò) attrib 獲得:

這樣返回的是字符串 ,然后可以只保留數(shù)字就可以了:

0x03 代碼實(shí)現(xiàn)

1. 導(dǎo)入需要的庫(kù)

2. 發(fā)送請(qǐng)求

3. 將返回的數(shù)據(jù)格式化為節(jié)點(diǎn)樹(shù)

4. 提取節(jié)點(diǎn)數(shù)據(jù)

完整代碼如下:

總結(jié)

以上是生活随笔為你收集整理的python运势预测程序_Python 爬虫系列之一——每日星座运势的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。