这几天想要整理一下自己的文章,想把之前的文章改为【粉丝可见】,但是!!!若要修改为粉丝可见,则需要手动一个一个点击文章,再一个一个点击【粉丝可见】,再一个一个点击发布文章,然后一个一个返回,重新选择下一篇文章。
整个过程既消耗时间!又消耗精力!😠
于是!!!哥们我忍不了了!花了一个多小时🕔的时间自己写了一个批量将文章改为【粉丝可见】的代码!
👉 不管是富文本编辑还是Markdown编辑的文章,统统给哥们改!
📣如果方便,点个赞,给个关注,那也是感激不尽呐!
📣话不多说,往下看吧!
Get_cookies.py 是获取登录后的cookie的程序代码
为了避免每次进入CSDN都要登录,于是我们先获取登录后的Cookie值,以后运行程序再次进入CSDN时就不用再手动登录了,可谓是“一劳永逸”!
注意:记得在10秒内登录哦!
from selenium import webdriver
from time import sleep
import json
if __name__ == '__main__':driver = webdriver.Chrome()driver.maximize_window()('=public')sleep(10)dictCookies = _cookies() # 获取list的cookiesjsonCookies = json.dumps(dictCookies) # 转换成字符串保存with open('', 'w') as f:f.write(jsonCookies)print('cookies保存成功!')
代码运行结束后,会生成一个保存cookies的txt文件
Visible_to_fans.py 是批量将CSDN文章变为粉丝可见的代码
from selenium import webdriver
from selenium.webdrivermon.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time
import jsonclass CSDN(object):def __init__(self):# 实例化driver对象self.driver = webdriver.Chrome()def login(self):('?')# 获取保存下的cookie值with open('', 'r', encoding='utf8') as f:listCookies = json.ad())# 往browser里添加cookiesfor cookie in listCookies:cookie_dict = {'domain': '.csdn','name': ('name'),'value': ('value'),"expires": '','path': '/','httpOnly': False,'HostOnly': False,'Secure': False}self.driver.add_cookie(cookie_dict)fresh() # 刷新网页,cookies才成功# 放大窗口self.driver.maximize_window()# 等待内容管理加载完毕后点击WebDriverWait(self.driver, 1000).until(EC.presence_of_element_located((By.XPATH, '//ul[@role="menu"]/li/a[text()="内容管理"]')))# 点击内容管理self.driver.find_element(By.XPATH, '//ul[@role="menu"]/li/a[text()="内容管理"]').click()# 分析网页def parse_page(self):"""用户选择好分栏并点击后,输入1,程序继续运行:return:"""user1 = input('输入1继续:')# 等待文章url加载WebDriverWait(self.driver, 1000).until(EC.presence_of_element_located((By.XPATH, '//p[@class="article-list-item-txt"]/a')))time.sleep(2)# 用try来进行下一页的搜索page_urls = [] # 存储文章urlpage_types = [] # 存储文章标签while True:try:# 先添加文章url和文章标签page_urls += [_attribute('href') for ele in self.driver.find_elements(By.XPATH, '//p[@class="article-list-item-txt"]/a')]page_types += [ for ele in self.driver.find_elements(By.XPATH, '//div[@class="article-list-type"]/span[1]')]# 点击下一页self.driver.find_element(By.XPATH, '//*[@id="view-containe"]/div/div/div[4]/div/button[2]').click()time.sleep(3)except:breakli_page_urls = []# 获取文章标签为原创的文章urlfor index in range(len(page_types)):if page_types[index] == '原创':li_page_urls.append(page_urls[index])# 调用修改文章为粉丝可见的函数self.change_fans(li_page_urls)# 获取文章的url并点击,修改文章为粉丝可见def change_fans(self, page_urls):for page_url in page_urls:(page_url)# 将文章滚动条拉到底ute_script('document.documentElement.scrollTop=1000000')time.sleep(3)# 用try来进行markdown文章的编辑try:self.driver.find_element(By.XPATH, '/html/body/div[1]/div[1]/div[1]/div/div[3]/button').click()# 滚动条向下滚动ute_script('document.documentElement.scrollTop=1000000')time.sleep(2)# 点击粉丝可见self.driver.find_element(By.XPATH, '/html/body/div[1]/div[2]/div/div[1]/div[1]/div[8]/div/div/label[3]').click()# 点击初级self.driver.find_element(By.XPATH, '/html/body/div[1]/div[2]/div/div[1]/div[1]/div[9]/div/div/label[1]').click()# 点击发送文章self.driver.find_element(By.XPATH, '/html/body/div[1]/div[2]/div/div[1]/div[2]/button[2]').click()# 防止出现提示,阻碍进程try:self.driver.find_element(By.XPATH, '/html/body/div[1]/div[2]/div/div[1]/div[2]/button[2]').click()except:passexcept:pass# 用try来进行富文本编辑文章的发送try:ute_script('document.documentElement.scrollTop=1000000')time.sleep(2)# 点击粉丝可见self.driver.find_element(By.XPATH, '//div[@id="moreDiv"]/div[8]/div/label[3]/span[1]/span').click()# 点击初级self.driver.find_element(By.XPATH, '//div[@id="moreDiv"]/div[9]/div/label[1]/span[2]').click()# 点击发布博客self.driver.find_element(By.XPATH, '//div[@id="moreDiv"]/div[10]/div/div/div[2]/button').click()time.sleep(1)# 防止出现提示,阻碍进程try:self.driver.find_element(By.XPATH, '//div[@id="moreDiv"]/div[10]/div/div/div[2]/button').click()except:passexcept:passtime.sleep(2)def run(self):self.login()self.parse_page()csdn = CSDN()
csdn.run()
当然,程序中可能还有不完善的地方,大家可以自行改善或提出建议哈!
本文发布于:2024-02-01 18:27:37,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170678325838597.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |