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