亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

基于Python怎么實現評論區抽獎功能

發布時間:2021-12-23 16:31:24 來源:億速云 閱讀:148 作者:iii 欄目:開發技術

這篇文章主要講解了“基于Python怎么實現評論區抽獎功能”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“基于Python怎么實現評論區抽獎功能”吧!

1. 分析評論接口

首先,我們需要找到評論數據的「接口」,也就是網站獲取評論數據的請求。

打開一個需要抽獎的文章,進入「開發者模式」(按F12 或 右鍵檢查),選中 Network 選項,同時「刷新」文章頁面,使其重新發送請求,在右側工具欄中觀察頁面發送的請求,逐個分析請求,根據響應內容判斷出獲取評論的請求

基于Python怎么實現評論區抽獎功能

在 Headers 欄中可以查看完整「請求」

https://blog.csdn.net/phoenix/web/v1/comment/list/121888905?page=1&size=3&commentId=

基于Python怎么實現評論區抽獎功能

2. 獲取評論數據

有了接口以后,我們使用 requests 模塊發送請求,獲取評論的數據

注意請求中的兩個參數: page 和 size

1.page 表示第幾頁,此處傳 1 即可

2.size 表示每頁顯示幾條數據,此處傳 100 (有幾條評論就寫幾)

import requests

# 評論請求連接
url = 'https://blog.csdn.net/phoenix/web/v1/comment/list/121888905?page=1&size=100&commentId='
# 請求頭
header = {
        "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36"
    }

# 獲取評論的請求數據(json字符串)
page = requests.get(url, headers=header)
print(page.text)

3. 篩選評論用戶

nickName 字段保存評論用戶名稱,我們將獲取到的數據根據 ,分隔成數組,再篩選出包含 nickName 的數據,即可獲取所有評論用戶的名稱,核心代碼如下

titles = page.text.split(',')  # 獲取每一個字段
names = []  # 存放評論者名稱的數組
for t in titles:
    # 獲取所有評論者字段
    if 'nickName' in t and '"nickName":"士別三日wyx"' not in t:
        name = t[12:len(t)-1]  # 截取評論者名稱
        names.append(name)  # 添加評論者名稱至數組
print(names)

除了上面的方式外,也可使用正則表達式來匹配用戶的名稱,核心代碼如下

# 獲取所有評論者名稱
names = re.findall('nickName":"([^"]*)",', page.text)
pond = []  # 獎池
for name in names:
    if '士別三日wyx' not in name:
        pond.append(name)  # 將參與者放入獎池

4. 抽取幸運觀眾

使用 random.choice 函數生成隨機用戶,作為幸運觀眾,核心代碼如下

# 隨機生成幸運觀眾
star = random.choice(pond)
print('參與抽獎人數: %d' % len(pond))
print('幸運觀眾:%s' % star)

5. 完整源碼

5.1 字符串截取的方式

使用「截取字符串」的方式篩選數據,精確度較高,適用于絕大部分場景

import requests
import random

# 評論請求連接
url = 'https://blog.csdn.net/phoenix/web/v1/comment/list/121888905?page=1&size=100&commentId='
# 請求頭
header = {
        "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36"
    }

# 獲取評論的請求數據(json字符串)
page = requests.get(url, headers=header)
titles = page.text.split(',')  # 獲取每一個字段
names = []  # 存放評論者名稱的數組
for t in titles:
    # 獲取所有評論者字段
    if 'nickName' in t and '"nickName":"士別三日wyx"' not in t:
        name = t[12:len(t)-1]  # 截取評論者名稱
        names.append(name)  # 添加評論者名稱至數組

# 隨機生成幸運觀眾
star = random.choice(pond)
print('參與抽獎人數: %d' % len(names))
print('幸運觀眾:%s' % star)

5.2 正則匹配方式

使用「正則匹配」的方式篩選數據,有一定誤差(用戶名中不能包含 " )

import requests
import random
import re

# 評論請求連接
url = 'https://blog.csdn.net/phoenix/web/v1/comment/list/121888905?page=1&size=100&commentId='
# 請求頭
header = {
        "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36"
    }

# 獲取評論的請求數據(json字符串)
page = requests.get(url, headers=header)
# 獲取所有評論者名稱
names = re.findall('nickName":"([^"]*)",', page.text)
pond = []  # 獎池
for name in names:
    if '士別三日wyx' not in name:
        pond.append(name)  # 將參與者放入獎池

# 隨機生成幸運觀眾
star = random.choice(pond)
print('參與抽獎人數: %d' % len(pond))
print('幸運觀眾:%s' % star)

5.3 執行結果

測試結果1

E:\data\PrCharm\pythonProject\venv\Scripts\python.exe E:/data/PrCharm/pythonProject/award.py

參與抽獎人數: 15

幸運觀眾:Willing 卡卡


Process finished with exit code 0

測試結果2 

E:\data\PrCharm\pythonProject\venv\Scripts\python.exe E:/data/PrCharm/pythonProject/award.py

參與抽獎人數: 15

幸運觀眾:小輝_Super


Process finished with exit code 0

感謝各位的閱讀,以上就是“基于Python怎么實現評論區抽獎功能”的內容了,經過本文的學習后,相信大家對基于Python怎么實現評論區抽獎功能這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

赞皇县| 吴堡县| 萝北县| 永丰县| 神农架林区| 紫云| 龙陵县| 潜山县| 西乌| 江都市| 嘉兴市| 吉木乃县| 通榆县| 德兴市| 屏山县| 承德市| 长汀县| 河源市| 电白县| 冕宁县| 扎囊县| 旬邑县| 丽江市| 德庆县| 荆州市| 讷河市| 满洲里市| 泰州市| 繁峙县| 宁乡县| 政和县| 辽阳县| 景泰县| 罗田县| 德清县| 元阳县| 阳谷县| 同仁县| 威海市| 南郑县| 洪泽县|