python贴吧顶贴_通过selenium实现贴吧自动顶贴

# coding=utf-8

import requests as rs

import re

from selenium import webdriver

from urllib import parse

import time

from selenium.webdriver.common.keys import Keys

class baidu:

def __init__(self, name, num):

self.index_url=''

self.headers = {

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KH'\

'TML, like Gecko) Chrome/83.0.4103.116 Safari/537.36'

}

self.name = name

self.index_num = num

self.wd = webdriver.Chrome(executable_path='chromedriver')

# 设置 浏览器最大化

self.wd.maximize_window()

self.wd.implicitly_wait(10)

def run(self):

# 合并 各种网址

self.combine_url()

# 获取 帖子地址

self.get_index_url_list()

# 百度登录

self.login_baidu()

# 开始顶贴

self.up_title()

def combine_url(self):

temp_url = 'https://tieba.baidu.com/f?'

self.index_url = temp_url + parse.urlencode({'kw' : self.name})+'&ie=utf-8&pn=0'

self.title_basic_href = 'https://tieba.baidu.com/p/'

self.title_href_list = []

def get_index_url_list(self):

for i in range(self.index_num):

self.index_url = self.index_url[:-1]+f'{i*50}'

con = rs.get(url=self.index_url,headers=self.headers).content.decode('utf-8')

href_list = re.findall('回复">.*?[\s\S]*?href="/p/(.*?)"\stitle',con)

self.title_href_list.append(href_list)

def login_baidu(self):

url = 'https://passport.baidu.com/v2/?login'

self.wd.get(url=url)

self.wd.find_element_by_id('TANGRAM__PSP_3__footerULoginBtn').click()

time.sleep(0.1)

# 输入 账号

self.wd.find_element_by_id('TANGRAM__PSP_3__userName').send_keys('贴吧账号')

# 输入 密码

self.wd.find_element_by_id('TANGRAM__PSP_3__password').send_keys('贴吧密码')

# 去除 下次登录

self.wd.find_element_by_id('TANGRAM__PSP_3__memberPass').click()

time.sleep(0.1)

# 登录

self.wd.find_element_by_id('TANGRAM__PSP_3__submit').click()

while True:

# 判断 是否跳转,如果为否,则判断是否存在弹出框

if url == self.wd.current_url:

time.sleep(0.2)

try:

self.wd.find_element_by_id('TANGRAM__PSP_21__foreground').find_element_by_id('TANGRAM__PSP_27__jump').click()

break

except:

time.sleep(0.2)

continue

# 已经跳转,则退出

else:

break

def up_title(self):

for i in self.title_href_list:

for j in i:

self.wd.get(self.title_basic_href+j)

time.sleep(0.1)

js = 'scrollTo(0,100000)'

self.wd.execute_script(js)

p = self.wd.find_element_by_id('ueditor_replace').find_element_by_xpath('./p')

p.send_keys('46846464684684')

p.send_keys(Keys.CONTROL,Keys.ENTER)

# 最后再加一个 判断 是否顶贴成功即可

# 下午 再干

# 拖了一周都没干。。。唉 拖延症

def main():

bd = baidu('灌水',1)

bd.run()

if __name__ == '__main__':

main()

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值