超级卵杰的自动脚本(2)selenium配置及发弹幕

selenium 对于浏览器自动化很方便,但需要额外下载其他程序来支持浏览器调用。chrome需要chromedriver。firefox需要geckodriver。网上找到对应自己浏览器版本下载。最好和浏览器放在一个文件夹下。并把路径添加进path。网上搜一下就搞定了。

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driverOptions = webdriver.ChromeOptions()
driverOptions.add_argument(r"user-data-dir=C:\Users\86185\AppData\Local\Google\Chrome\User Data")
#利用cookie登录,只要把自己浏览器下的user data路径替换就行。
#driverOptions.add_argument('-headless')
#headless模式,70版本以前可以同时添加。
driver = webdriver.Chrome(options=driverOptions)
driver.get('https://www.douyu.com/74751')#打开网页,url为网址

如果不用driveroptions(),会打开全新的浏览器(没有任何记录)。可以无限打开新浏览器。但添加driveroptions()就只能打开一个(带记录,和自己打开的一样)浏览器,打开第二个会报错。

Firefox和chrome差不多,把ChromeOptions()换成FirefoxOptions()。cookie路径换成Firefox下的(随机8位).default文件就行了。

from selenium import webdriver
import time
from selenium.webdriver.common.keys import Keys
fp = webdriver.FirefoxProfile(r"C:\Users\86185\AppData\Roaming\Mozilla\Firefox\Profiles\yy63j5a3.default")
browser=webdriver.Firefox(fp)
browser.get('https://www.douyu.com/74751')#打开网页,url为网址

firefox版本,只不过driver变成browser。功能都一样。

PS:chrome70版本还能cookie和head

less同时使用。71版本添加cookie,headless就用不了。感觉headless很方便。如有大神知道如何解决此问题,请告诉我,不胜感激。

将url替换成小杰直播间网址就可以打开小杰直播间了。

在弹幕窗口右击点检查,会出现网页源代码。超级卵杰的自动脚本(2)selenium配置及发弹幕_第1张图片

可以看到发送窗口为:

只要定位到此处就能发弹幕。

selenium定位元素有很多种方式,这里用xpath

def send_dm(dm):
    DM = str(dm)
    try:
        driver.find_element_by_xpath("//textarea[@class='ChatSend-txt ']").clear()
#清空输入框内容
        driver.find_element_by_xpath("//textarea[@class='ChatSend-txt ']").send_keys(DM)
#输入弹幕内容
        time.sleep(1)
        driver.find_element_by_xpath("//textarea[@class='ChatSend-txt ']").send_keys(Keys.ENTER)
#敲回车
        time.sleep(9)
    except:
        pass

@class='ChatSend-txt '这里的txt后面有空格,没空格定位不到。

你要不嫌麻烦,也可以定位到

发送
用click()点击,可以代替回车。

一般发一条弹幕系统会延时10秒不让发,所以延时10秒;

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driverOptions = webdriver.ChromeOptions()
driverOptions.add_argument(r"user-data-dir=C:\Users\86185\AppData\Local\Google\Chrome\User Data")
#利用cookie登录,只要把自己浏览器下的user data路径替换就行。
#driverOptions.add_argument('-headless')
#headless模式,70版本以前可以同时添加。
driver = webdriver.Chrome(options=driverOptions)
driver.get('https://www.douyu.com/74751')#打开网页,url为网址
def send_dm(dm):
    DM = str(dm)
    try:
        driver.find_element_by_xpath("//textarea[@class='ChatSend-txt ']").clear()
#清空输入框内容
        driver.find_element_by_xpath("//textarea[@class='ChatSend-txt ']").send_keys(DM)
#输入弹幕内容
        time.sleep(1)
        driver.find_element_by_xpath("//textarea[@class='ChatSend-txt ']").send_keys(Keys.ENTER)
#敲回车
        time.sleep(9)
    except:
        pass
send_dm('你好')

就可以在超级卵杰直播间打出你好两字。

你可能感兴趣的:(超级卵杰的自动脚本(2)selenium配置及发弹幕)