当前位置 博文首页 > 一条IT:【python实战】利用selenium自动发信息给粉丝(CSDN)

    一条IT:【python实战】利用selenium自动发信息给粉丝(CSDN)

    作者:[db:作者] 时间:2021-08-13 09:41

    哈喽,大家好,我是一条。

    今天做一个造福大家的事。

    csdn最近推出可以将文章群发给粉丝的功能,有点公众号的功能了,点个赞。

    但是使用次数限制的太严重,所以一条决定:

    自制csdn群发助手

    效果展示

    在这里插入图片描述

    selenium

    selenium是爬虫常用的一款自动化测试插件,它不用于传统爬虫基于网络协议,而是相当于人的自动化操作

    所以不会被察觉到ip,适当使用也不会对服务器造成压力,但却能大大提高效率。

    浏览器驱动

    seleium的使用需要浏览器驱动的支持,谷歌浏览器的下载镜像如下,对照浏览器版本下载。

    http://chromedriver.storage.googleapis.com/index.html

    在这里插入图片描述

    获取粉丝列表

    1.打开主页,F12

    在这里插入图片描述
    2.将链接在浏览器打开,得到粉丝的json串。
    在这里插入图片描述
    3.简单处理一下json串,拿到nickname

    此处留给大家去练习,不贴源码。

    拿到后建议存在txt文件里。

    发送信息

    不难发现,发私信的页面https://im.csdn.net/chat/{nickname}

    所以只需->访问私信页面->输入要发送内容->回车

    登录可以选择账号密码登录,也可以微信登录,设置一个input()等待登录操作,成功后回车,程序继续执行。

    代码

    from selenium import webdriver
    import time
    import re
    
    from selenium.webdriver.common.keys import Keys
    sendtext="【白话设计模式】23种设计模式一句话通俗讲解,女朋友都能听懂(导航篇)\n https://blog.csdn.net/skylibiao/article/details/117596850?spm=1001.2014.3001.5501 \n 以上信息来自CSDN群发服务"
    # 此处需根据文件内粉丝列表的格式自己修改
    print("开始解析用户信息")
    userlist=[]
    with open("user",'r+') as f:
        s=str(f.readlines())
        news=re.sub(r'[{}""''\n]',"",s)
        ss=news.split(",")
        for i in range(1,len(ss),5):
            key=ss[i].split(":")[0]
            value=ss[i].split(":")[1]
            if(key=="fans"):
                userlist.append(value)
        print(userlist,len(userlist))
    print("用户信息解析完成")
    
    allnameid=[]
    browser = webdriver.Chrome()
    print("进入登录页面")
    # browser.get("https://me.csdn.net/qq_16146103")
    browser.get("https://passport.csdn.net/login?code=public")
    btn=browser.find_element_by_link_text("账号密码登录").click()
    time.sleep(1)
    # browser.find_element_by_name("all").send_keys("账号")
    # browser.find_element_by_name("pwd").send_keys("密码")
    # browser.find_element_by_xpath("//*[@id='app']/div/div/div[1]/div[2]/div[5]/div/div[6]/div/button").click()
    time.sleep(1)
    input("登录成功后回车")
    for i in range (0,len(userlist)):
        browser.get("https://im.csdn.net/chat/{}".format(userlist[i]))
        text=browser.find_element_by_id("messageText")
        text.send_keys(sendtext)
        text.send_keys(Keys.ENTER)
    print("success")
    

    嘱咐

    切记不要过分使用,小心官方制裁


    我是一条,一个在互联网摸爬滚打的程序员。

    道阻且长,行则将至。大家的 【点赞,收藏,关注】 就是一条创作的最大动力,我们下期见!

    注:关于本篇博客有任何问题和建议,欢迎大家留言!

    **,一个在互联网摸爬滚打的程序员。

    道阻且长,行则将至。大家的 【点赞,收藏,关注】 就是一条创作的最大动力,我们下期见!

    注:关于本篇博客有任何问题和建议,欢迎大家留言!

    cs