用selenium实现百度贴吧自动发帖

写完前面两篇以后,就打算写个百度贴吧自动发帖程序,结果研究了好久,发现比预想的难太多了。。。
一开始打算用requests模拟登陆,用F12抓了包,看post请求参数:
用selenium实现百度贴吧自动发帖
用selenium实现百度贴吧自动发帖
参数也特么太多了,简直丧心病狂,变化参数有token、tt、gid、rsakey、ppui_logintime、fp_uid、fp_info、dv、traceid、callback一共10个,token、tt、rsakey之类的还好说,获取方式比较明显,但是fp_uid、fp_info、dv这三个研究了好久也搞不定,很明显是js里生成的,然而我最头疼的就是看上千行的js代码,太痛苦了。。。
研究了几天最终放弃,换个方案,手动登录获取cookies,然后直接在程序里写死了cookies来发帖。F12抓个发帖的包,请求参数:
用selenium实现百度贴吧自动发帖
mouse_pwd、BSK。。。这都是什么鬼,实在不想再看js了,再次放弃。
没办法了,只有祭出大招了:selenium,下面上代码
from selenium import webdriver
import time

driver = webdriver.Chrome()
driver.maximize_window()
driver.get('https://passport.baidu.com/v2/?login')
time.sleep(2)
driver.find_element_by_id("TANGRAMPSP_3__footerULoginBtn").click()
driver.find_element_by_name("userName").clear()
driver.find_element_by_name("userName").send_keys('用户名')
driver.find_element_by_name("password").clear()
driver.find_element_by_name("password").send_keys('密码')
time.sleep(2)
#手动输入验证码
driver.find_element_by_id("TANGRAM
PSP_3__submit").click()
time.sleep(25)
driver.get('https://tieba.baidu.com/f?kw=贴吧名&fr=index')
time.sleep(6)
driver.find_element_by_name("title").send_keys('发帖标题')
driver.find_element_by_id("ueditor_replace").send_keys('发帖内容')
time.sleep(2)
driver.find_element_by_xpath('//*[@id="tb_rich_poster"]/div[3]/div[5]/div/button[1]').click()

其中time.sleep(25)那里,是因为有可能需要短信验证码,所以预留的时间长一点。另外就是打开贴吧的url以后也需要sleep时间长一点,否则帖子标题那里会写不全。
因为是刚接触selenium,还有很多地方没有研究明白,但是这玩意功能是真强大~

转载于:https://blog.51cto.com/13904513/2159452

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值