本帖最后由 lemoncute 于 2019-7-19 09:29 编辑
程序说明
- 用途:贴吧回复自动生成Excel
- 版本: V1.2
- 作者: 柠檬不萌
- 友情链接:lcke.xyz/blog
- 联系邮箱:typecho@lcke.xyz
使用说明
你必须已经安装 Chorme 浏览器
用到的 Python 库
- webdriver
- BeautifulSoup
- xlwt
- time(自带)
- 需要 chromedriver.exe 并配置环境变量,可能需要对应版本,百度可解决
-
当前适用于 Chrome版本 74.0.3729.131(正式版本)(32 位)
- 主函数中配置登录账号(line 91)
- 在提示“请输入任意内容确认你已经登录:“
- 必须是你已经登录账号,
- 出现验证码请手动处理。(line 92)
- (ilne 93) 输入你要打开回复的第几页
- 最后一个数字是页数,不写为第一页
- 生成的 excel 超链接没有样式
- excel样式需要自己添加(后续版本改进)
--- [Python] 纯文本查看 复制代码 # http://tieba.baidu.com/i/i/my_reply
from selenium import webdriver
import time
from bs4 import BeautifulSoup
import xlwt
def login(name, passwd):
# 1.打开浏览器
driver = webdriver.Chrome()
# 2.设置地址
url = "https://www.baidu.com/"
# 3.访问网址
driver.get(url)
# 4.分析网页,找到登录元素
# login = driver.find_elements_by_id('u1').find_elements_by_class_name('lb')[0] #方法一
login = driver.find_elements_by_css_selector('div[id=u1] a[class=lb]')[0] #方法二
#5.点击登录按钮
login.click()
time.sleep(2)
changeusename=driver.find_element_by_id("TANGRAM__PSP_10__footerULoginBtn")
changeusename.click()
#点击之后要加等待时间
time.sleep(2)
#8.找到 输入 用户名 和密码框,并且设置内容
#<input id="TANGRAM__PSP_10__userName">
username = driver.find_element_by_id('TANGRAM__PSP_10__userName')
#输入账号名
username.send_keys(name)
time.sleep(1)
#<input id="TANGRAM__PSP_10__password">
password = driver.find_element_by_id('TANGRAM__PSP_10__password')
#输入密码
password.send_keys(passwd)
time.sleep(2)
#<input id="TANGRAM__PSP_10__submit">
submit = driver.find_element_by_id('TANGRAM__PSP_10__submit')
submit.click()
return driver
def opentieba(browser, url = 'http://tieba.baidu.com/i/i/my_reply?&pn=1'):
browser.get(url)
context=browser.page_source
soup = BeautifulSoup(context, 'html.parser')
context=browser.find_element_by_css_selector(".simple_block_container")
print(context.text)
cont=soup.find_all(class_='b_right_up')
return cont
def writeXls(cont):
i = 0 # 从第几行开始写
# 1、导入模块
# 2、创建workbook(其实就是excel,后来保存一下就行)
# workbook = xlwt.Workbook(encoding='ascii')
workbook = xlwt.Workbook(encoding = 'utf-8')
# 3、创建表
worksheet = workbook.add_sheet('sheet1')
for link in cont:
print(link)
item = BeautifulSoup(str(link), 'html.parser')
reply_context=item.find(class_="for_reply_context")
thread_title=item.find(class_="thread_title")
href = str(thread_title)[31:54]
href = 'http://tieba.baidu.com/' + href
print(reply_context.text)
worksheet.write(i, 0, label=reply_context.text)
print(thread_title.text)
worksheet.write(i, 1,xlwt.Formula('HYPERLINK("'+href+'"," '+thread_title.text+'")'))
print(href)
i = i + 1
time.sleep(1)
# 5、保存
date = time.strftime("%Y%m%d%H%M%S", time.localtime())+ '_'
workbook.save('Excel_'+date+str(i)+'.xls')
i = 0
return "successful"
def writedata(data):
#1、导入模块
#2、创建workbook(其实就是excel,后来保存一下就行)
workbook = xlwt.Workbook(encoding='ascii')
# 3、创建表
worksheet = workbook.add_sheet('sheet1')
#4、往单元格内写入内容
worksheet.write(0, 0, label=data)
# 5、保存
workbook.save('Excel_Workbook.xls')
def main():
driver = login("美食拍客136822", "*****")
str = input("请输入任意内容确认你已经登录:")
xlscontext = opentieba(driver, url = 'http://tieba.baidu.com/i/i/my_reply?&pn=1')
res = writeXls(xlscontext)
print(res)
if __name__ == '__main__':
main()
webdriver :lanzouyun https://www.lanzouj.com/i51yjkj蓝奏云 webdriver,一定要下载chrome对应版本
getTieba.rar
(71.37 KB, 下载次数: 22)
|