最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于Python實現(xiàn)評論區(qū)抽獎功能詳解

 更新時間:2021年12月23日 15:32:28   作者:士別三日wyx  
這篇文章主要為大家介紹了基于Python如何實現(xiàn)評論區(qū)抽獎的功能,文章的示例代碼講解詳細,對我們學習Python有一定幫助,需要的朋友可以學習一下

1. 分析評論接口

首先,我們需要找到評論數(shù)據(jù)的「接口」,也就是網(wǎng)站獲取評論數(shù)據(jù)的請求。

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

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

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

2. 獲取評論數(shù)據(jù)

有了接口以后,我們使用 requests 模塊發(fā)送請求,獲取評論的數(shù)據(jù)

注意請求中的兩個參數(shù): page 和 size

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

2.size 表示每頁顯示幾條數(shù)據(jù),此處傳 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"
    }

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

3. 篩選評論用戶

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

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

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

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

4. 抽取幸運觀眾

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

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

5. 完整源碼

5.1 字符串截取的方式

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

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"
    }

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

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

5.2 正則匹配方式

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

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"
    }

# 獲取評論的請求數(shù)據(jù)(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('參與抽獎人數(shù): %d' % len(pond))
print('幸運觀眾:%s' % star)

5.3 執(zhí)行結(jié)果

測試結(jié)果1

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

參與抽獎人數(shù): 15

幸運觀眾:Willing 卡卡

Process finished with exit code 0

測試結(jié)果2?

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

參與抽獎人數(shù): 15

幸運觀眾:小輝_Super

Process finished with exit code 0

以上就是基于Python實現(xiàn)評論區(qū)抽獎功能詳解的詳細內(nèi)容,更多關(guān)于Python評論區(qū)抽獎功能的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python多重繼承之菱形繼承的實例詳解

    Python多重繼承之菱形繼承的實例詳解

    繼承是面向?qū)ο缶幊痰囊粋€重要的方式,通過繼承,子類就可以擴展父類的功能。這篇文章主要介紹了Python多重繼承之菱形繼承,需要的朋友可以參考下
    2020-02-02
  • 使用pygame模塊編寫貪吃蛇的實例講解

    使用pygame模塊編寫貪吃蛇的實例講解

    下面小編就為大家分享一篇使用pygame模塊編寫貪吃蛇的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • python解析發(fā)往本機的數(shù)據(jù)包示例 (解析數(shù)據(jù)包)

    python解析發(fā)往本機的數(shù)據(jù)包示例 (解析數(shù)據(jù)包)

    這篇文章主要介紹了使用python解析獲取發(fā)往本機的數(shù)據(jù)包,并打印出來, 大家參考使用吧
    2014-01-01
  • Django 解決model 反向引用中的related_name問題

    Django 解決model 反向引用中的related_name問題

    這篇文章主要介紹了Django 解決model 反向引用中的related_name問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • python 裝飾器詳解與應用范例

    python 裝飾器詳解與應用范例

    裝飾器是 Python 的一個重要部分。簡單地說:他們是修改其他函數(shù)的功能的函數(shù)。他們有助于讓我們的代碼更簡短,也更Pythonic。大多數(shù)初學者不知道在哪兒使用它們,所以我將要分享下,哪些區(qū)域里裝飾器可以讓你的代碼更簡潔。 首先,讓我們討論下如何寫你自己的裝飾器
    2021-11-11
  • python?PyQt5(自定義)信號與槽使用及說明

    python?PyQt5(自定義)信號與槽使用及說明

    這篇文章主要介紹了python?PyQt5(自定義)信號與槽使用及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • 如何利用Python+OpenCV實現(xiàn)簡易圖像邊緣輪廓檢測(零基礎)

    如何利用Python+OpenCV實現(xiàn)簡易圖像邊緣輪廓檢測(零基礎)

    輪廓是形狀分析和物體檢測和識別的有用工具,下面這篇文章主要給大家介紹了關(guān)于如何利用Python+OpenCV實現(xiàn)簡易圖像邊緣輪廓檢測(零基礎)的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-05-05
  • flask框架實現(xiàn)連接sqlite3數(shù)據(jù)庫的方法分析

    flask框架實現(xiàn)連接sqlite3數(shù)據(jù)庫的方法分析

    這篇文章主要介紹了flask框架實現(xiàn)連接sqlite3數(shù)據(jù)庫的方法,結(jié)合實例形式分析了flask框架連接sqlite3數(shù)據(jù)庫的具體操作步驟與相關(guān)實現(xiàn)技巧,需要的朋友可以參考下
    2018-07-07
  • python3 pandas 讀取MySQL數(shù)據(jù)和插入的實例

    python3 pandas 讀取MySQL數(shù)據(jù)和插入的實例

    下面小編就為大家分享一篇python3 pandas 讀取MySQL數(shù)據(jù)和插入的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • tensorflow: 查看 tensor詳細數(shù)值方法

    tensorflow: 查看 tensor詳細數(shù)值方法

    今天小編就為大家分享一篇tensorflow: 查看 tensor詳細數(shù)值方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06

最新評論

伊吾县| 安阳县| 漠河县| 乌苏市| 霞浦县| 正阳县| 舞阳县| 上饶市| 开封县| 永清县| 桃园县| 前郭尔| 北碚区| 江都市| 聂荣县| 连州市| 宝兴县| 洛南县| 萨嘎县| 澎湖县| 天门市| 津市市| 丹东市| 无极县| 湖南省| 寻甸| 通海县| 永泰县| 缙云县| 苗栗县| 晴隆县| 镇平县| 泗阳县| 英吉沙县| 雷州市| 红桥区| 蓝山县| 苏尼特右旗| 抚顺县| 五常市| 涡阳县|