贴吧助手web版

 找回密码
 立即注册
搜索
查看: 1977|回复: 0

python控制浏览器爬取百度贴吧回复并写入Excel

[复制链接]
     紫钻仅向指定用户开放  
  • TA的每日心情
    不屑
    前天 19:07
  • 签到天数: 1039 天

    [LV.10]以坛为家III

    674

    主题

    1442

    帖子

    1484

    积分

    管理员

    Rank: 15Rank: 15Rank: 15Rank: 15

    金币
    3355

    接口达人工具作者土豪之星

    发表于 2019-7-27 15:14:15 | 显示全部楼层 |阅读模式
    程序说明
    • 用途:贴吧回复自动生成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样式需要自己添加(后续版本改进)
      1. # http://tieba.baidu.com/i/i/my_reply
      2. from selenium import webdriver
      3. import time
      4. from bs4 import BeautifulSoup
      5. import xlwt

      6. def login(name, passwd):
      7.     # 1.打开浏览器
      8.     driver = webdriver.Chrome()
      9.     # 2.设置地址
      10.     url = "https://www.baidu.com/"
      11.     # 3.访问网址
      12.     driver.get(url)
      13.     # 4.分析网页,找到登录元素
      14.     # login = driver.find_elements_by_id('u1').find_elements_by_class_name('lb')[0]   #方法一
      15.     login = driver.find_elements_by_css_selector('div[id=u1] a[class=lb]')[0]   #方法二
      16.     #5.点击登录按钮
      17.     login.click()
      18.     time.sleep(2)
      19.     changeusename=driver.find_element_by_id("TANGRAM__PSP_10__footerULoginBtn")
      20.     changeusename.click()
      21.     #点击之后要加等待时间
      22.     time.sleep(2)
      23.     #8.找到 输入 用户名 和密码框,并且设置内容
      24.     #<input id="TANGRAM__PSP_10__userName">
      25.     username = driver.find_element_by_id('TANGRAM__PSP_10__userName')
      26.     #输入账号名
      27.     username.send_keys(name)
      28.     time.sleep(1)
      29.     #<input id="TANGRAM__PSP_10__password">
      30.     password = driver.find_element_by_id('TANGRAM__PSP_10__password')
      31.     #输入密码
      32.     password.send_keys(passwd)
      33.     time.sleep(2)
      34.     #<input id="TANGRAM__PSP_10__submit">
      35.     submit = driver.find_element_by_id('TANGRAM__PSP_10__submit')
      36.     submit.click()
      37.     return driver

      38. def opentieba(browser, url = 'http://tieba.baidu.com/i/i/my_reply?&pn=1'):
      39.     browser.get(url)
      40.     context=browser.page_source
      41.     soup = BeautifulSoup(context, 'html.parser')
      42.     context=browser.find_element_by_css_selector(".simple_block_container")
      43.     print(context.text)
      44.     cont=soup.find_all(class_='b_right_up')
      45.     return  cont

      46. def writeXls(cont):
      47.     i = 0 # 从第几行开始写
      48.     # 1、导入模块      
      49.     # 2、创建workbook(其实就是excel,后来保存一下就行)
      50.    # workbook = xlwt.Workbook(encoding='ascii')
      51.     workbook = xlwt.Workbook(encoding = 'utf-8')
      52.     # 3、创建表
      53.     worksheet = workbook.add_sheet('sheet1')
      54.     for link in cont:
      55.         print(link)
      56.         item = BeautifulSoup(str(link), 'html.parser')
      57.         reply_context=item.find(class_="for_reply_context")
      58.         thread_title=item.find(class_="thread_title")
      59.         href = str(thread_title)[31:54]
      60.         href = 'http://tieba.baidu.com/' + href
      61.         print(reply_context.text)
      62.         worksheet.write(i, 0, label=reply_context.text)
      63.         print(thread_title.text)
      64.         worksheet.write(i, 1,xlwt.Formula('HYPERLINK("'+href+'"," '+thread_title.text+'")'))
      65.         print(href)
      66.         i = i + 1
      67.         time.sleep(1)

      68.     # 5、保存
      69.     date = time.strftime("%Y%m%d%H%M%S", time.localtime())+ '_'
      70.     workbook.save('Excel_'+date+str(i)+'.xls')
      71.     i = 0
      72.     return "successful"

      73. def writedata(data):
      74.     #1、导入模块      
      75.     #2、创建workbook(其实就是excel,后来保存一下就行)
      76.     workbook = xlwt.Workbook(encoding='ascii')
      77.    # 3、创建表
      78.     worksheet = workbook.add_sheet('sheet1')
      79.     #4、往单元格内写入内容
      80.     worksheet.write(0, 0, label=data)
      81.    # 5、保存
      82.     workbook.save('Excel_Workbook.xls')

      83. def main():
      84.     driver = login("美食拍客136822", "*****")
      85.     str = input("请输入任意内容确认你已经登录:")
      86.     xlscontext = opentieba(driver, url = 'http://tieba.baidu.com/i/i/my_reply?&pn=1')
      87.     res = writeXls(xlscontext)
      88.     print(res)



      89. if __name__ == '__main__':
      90.     main()
      复制代码
      webdriver :lanzouyun  https://www.lanzous.com/i51yjkj蓝奏云 webdriver,一定要下载chrome对应版本 1.png




    上一篇:2019年7月27日签到记录贴
    下一篇:2019年7月28日签到记录贴

    getTieba.rar

    71.37 KB, 下载次数: 2

    喵星人贴吧助手你值得拥有
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    网站地图|Archiver|手机版|小黑屋|贴吧助手web版

    Copyright © 2016-2020 TieBaZSTool by TieBaZSAll Rights Reserved.

    快速回复 返回顶部 返回列表