首页 > 编程语言 >Python - Selenium抓取淘宝直播间评论(可使用无头模式)

Python - Selenium抓取淘宝直播间评论(可使用无头模式)

时间:2024-07-25 13:54:19浏览次数:17  
标签:浏览器 Python Selenium selenium 抓取 tm crawling options browser

Python - Selenium抓取淘宝直播间评论(可使用无头模式)

下面介绍如何使用python中的selenium简单抓取淘宝直播间实时评论。

友情提醒,仅供学习交流使用,请勿用于非法用途!

一、创建python项目

1.在目录下新建main.py和venv虚拟环境:

创建虚拟环境:
python -m venv venv

激活虚拟环境:
cd /venv/Scripts
source activate

请添加图片描述
2.安装selenium:

在激活的虚拟环境(venv)下:
pip install selenium -i https://mirrors.aliyun.com/pypi/simple/

3.下载谷歌浏览器Chrome驱动:

新版selenium会自动下载并载入webDriver,不需要以前的手动配置加载,但每隔一段时间, selenium就会检查webDriver更新并重新下载,重新下载的过程中程序无法运行,且因为网络问题,浏览器需要较长时间才能打开,所以我们选择使用selenium中的service类手动加载webDriver避免每次重新下载webDriver更新,解决浏览器长时间未打开的问题,把下载好的chromedriver.exe放到目录下。

1.在谷歌浏览器输入,获取当前的浏览器版本
chrome://version/

2.然后再访问链接下载驱动(替换自己的浏览器版本:127.0.6533.73)
https://storage.googleapis.com/chrome-for-testing-public/127.0.6533.73/win64/chromedriver-win64.zip

3.并把chromedriver.exe放到项目目录下

二、抓取淘宝直播间评论(PC大屏版)

1.在main.py文件中:

import time  # 事件库,用于硬性等待
import threading
from bs4 import BeautifulSoup
from selenium import webdriver  # 导入selenium的webdriver模块
from selenium.webdriver.chrome.service import Service

# 直播间链接(PC大屏版,需替换要连接的直播间链接)
live_tm_url = 'https://tbzb.taobao.com/live?spm=a21bo.29164009.discovery.d7.159f5f7e8bzrAm&liveSource=pc_live.discovery&liveId=xxxxxxxxx'  
crawling_browser_tm = None  # 浏览器
comment = []  # 评论列表

# 打开天猫直播间浏览器
def init_crawling_browser_tm(url):
    global crawling_browser_tm
    service = Service('./chromedriver.exe')
    options = webdriver.ChromeOptions()
    # 无头模式
    # options.add_argument('--headless')
    options.add_experimental_option('detach', True)
    # 忽略证书错误
    options.add_argument('--ignore-certificate-errors')
    # 忽略 Bluetooth: bluetooth_adapter_winrt.cc:1075 Getting Default Adapter failed. 错误
    options.add_experimental_option('excludeSwitches', ['enable-automation'])
    # 忽略 DevTools listening on ws://127.0.0.1... 提示
    options.add_experimental_option('excludeSwitches', ['enable-logging'])
    crawling_browser_tm = webdriver.Chrome(options=options,service=service) #
    crawling_browser_tm.get(url)
    crawling_browser_tm.maximize_window()  # 浏览器全屏
    threading.Timer(10, get_comment_tm_list, args=()).start()

# 获取天猫直播评论
def get_comment_tm_list():
    global comment,crawling_browser_tm
    try:
        content_tm = crawling_browser_tm.page_source
        soup_tm = BeautifulSoup(content_tm, 'html.parser')
        # 找到评论的class名称
        items_tm = soup_tm.find_all(class_='content--xxxxxx') # 元素xpath已被篡改,代码仅供学习参考使
        for item in items_tm[-5:]:
            comment.append(item.text)
        print(comment)
        comment.clear()
        threading.Timer(10, get_comment_tm_list, args=()).start()
    except:
        print('天猫自动化测试浏览器:未找到弹幕标签,请查看直播链接是否已结束或异常关闭')


init_crawling_browser_tm(live_tm_url)

2.运行main.py文件,获取最新的5条评论:

python main.py

请添加图片描述

到此为止,selenium获取淘宝直播间实时评论就完成啦,如遇到强制登录,可关闭登录弹窗,在左上角点击登录,进行扫码登录一次,其他验证码或密码登录在自动化测试中无效。仅供学习交流使用,请勿用于非法用途。

标签:浏览器,Python,Selenium,selenium,抓取,tm,crawling,options,browser
From: https://blog.csdn.net/miaomiaowins/article/details/140687790

相关文章