selenium操控WordPress自动发布文章 自动化测试

鳄鱼君

发表文章数:642

热门标签

Vieu四代商业主题

高扩展、安全、稳定、响应式布局多功能模板。

¥69 现在购买
首页 » Python » selenium操控WordPress自动发布文章 自动化测试

selenim可以操控web页面,就以WordPress网站来说吧,可以实现WordPress自动发布文章,那么们来实现一下试试吧。那么先分析一下,按照下面的图片,我们需要输入标题,接着是内容,然后就可以发布文章了,但是这样还不如自己用手解决,我们需要添加到固定的分类中,添加标签,添加关键字,这里我使用的是Yast SEO插件,可以设置关键字,添加元描述,元描述的话发现它不是一个可输入的框,是一个div,也就是不能使用send_keys来输入内容,所以这个先暂且不管。

#selenium实现WordPress自动发布文章
import time,redis
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.action_chains import ActionChains
def wordpress_selenium(title,content,key_value):
    #设置首选项
    #option =webdriver.ChromeOptions()
    #option.add_argument('headless')   #添加之后不会看到浏览器的界面

    #driver=webdriver.Chrome(chrome_options=option)
    driver=webdriver.Chrome()
    timeout=30
    #driver.maximize_window() #最大窗口

    #模拟登录  添加cookie,格式为name: 等号左边 , value:等号右边
    cookie_wordpress=[{'name': '', 'value': ''},
                      {'name': '', 'value': ''},
                      {'name': '', 'value': ''},
                      {'name': '', 'value': ''},
                      {'name': '', 'value': ''},
                      {'name': '', 'value': ''},
                      {'name': '', 'value': ''}]
    driver.get('https://www.e1yu.com/wp-admin/index.php')  #登录后台首页
    for cookie in cookie_wordpress:
        driver.add_cookie(cookie)  #添加cookies
    driver.get('https://www.e1yu.com/wp-admin/post-new.php') #打开发布文章的页面
    #找到标题框,写标题
    write_title=WebDriverWait(driver,timeout).until(lambda a:a.find_element_by_xpath('//*[@id="title"]'))
    write_title.click()
    write_title.send_keys(title)
    #找到正文框,写正文
    write_content=WebDriverWait(driver,timeout).until(lambda b:b.find_element_by_xpath('//*[@id="content"]'))
    write_content.click()
    write_content.send_keys(content)

    #设置关键字
    write_key_value = WebDriverWait(driver, timeout).until(lambda b: b.find_element_by_xpath('//*[@id="focus-keyword-input-metabox"]'))
    write_key_value.click()
    write_key_value.send_keys(key_value)


    # #选择分类目录
    driver.execute_script("window.scrollBy(0,200)") #向下滚动一点
    for i in range(10):  #分类目录也是需要滚动的
        browser=WebDriverWait(driver,timeout).until(lambda b:b.find_element_by_xpath('//*[@id="category-all"]'))
        ActionChains(driver).drag_and_drop_by_offset(browser, 0, 10).perform() #相当于拖动鼠标移动,滚动滑块
    write_nav=WebDriverWait(driver,timeout).until(lambda b:b.find_element_by_xpath('//*[@id="in-category-317"]'))#找到分类目录
    write_nav.click()

    #添加标签
    write_content = WebDriverWait(driver, timeout).until(lambda b: b.find_element_by_xpath('//*[@id="new-tag-post_tag"]'))
    write_content.click() #找到标签框
    time.sleep(1)
    write_content.send_keys('这是一个标签')#输入内容
    write_tag=WebDriverWait(driver,timeout).until(lambda b:b.find_element_by_xpath('//*[@id="post_tag"]/div/div[2]/input[2]'))
    write_tag.click()#找到添加按钮,点击添加

    #滚动到顶部发布
    driver.execute_script('document.documentElement.scrollTop=0')   #滚动到顶部
    submin=WebDriverWait(driver,timeout).until(lambda b:b.find_element_by_xpath('//*[@id="publish"]')) #找到发布按钮
    submin.click()
if __name__=='__main__':
    title='WordPress世界你好'
    content='这是WordPress第一篇文章'
    key_value='这是一个关键字'
    wordpress_selenium(title,content,key_value)

操作的时候要设置等待,不然元素没加载出来找不到就会报错,title和content,还有关键字都可以替换。这里可以这样玩,先抓取适量的文章,存到数据库中,然后读取,就这样可以实现自动发布文章,速度受网速和电脑配制的影响,还取决于你网站服务器的性能,那么自己玩玩吧。

未经允许不得转载:作者:鳄鱼君, 转载或复制请以 超链接形式 并注明出处 鳄鱼君
原文地址:《selenium操控WordPress自动发布文章 自动化测试》 发布于2020-02-15

分享到:
赞(1) 赏杯咖啡

评论 抢沙发

6 + 5 =


文章对你有帮助可赏作者一杯咖啡

支付宝扫一扫打赏

微信扫一扫打赏

Vieu4.6主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。
切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录
切换登录

注册