吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3504|回复: 14
收起左侧

[Python 转载] python控制浏览器爬取百度贴吧回复并写入Excel

  [复制链接]
lemoncute 发表于 2019-7-19 09:11
本帖最后由 lemoncute 于 2019-7-19 09:29 编辑

程序说明

  • 用途:贴吧回复自动生成Excel
  • 版本: V1.2
  • 作者: 柠檬不萌
  • 友情链接:lcke.xyz/blog
  • 联系邮箱:typecho@lcke.xyz

使用说明

你必须已经安装 Chorme 浏览器

用到的 Python 库

  1. webdriver
  2. BeautifulSoup
  3. xlwt
  4. time(自带)
    • 需要 chromedriver.exe 并配置环境变量,可能需要对应版本,百度可解决
    • 当前适用于 Chrome版本 74.0.3729.131(正式版本)(32 位)

  5. 主函数中配置登录账号(line 91)
  6. 在提示“请输入任意内容确认你已经登录:“
    • 必须是你已经登录账号,
    • 出现验证码请手动处理。(line 92)
  7. (ilne 93) 输入你要打开回复的第几页
  8. 最后一个数字是页数,不写为第一页
  9. 生成的 excel 超链接没有样式
  10. 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)

webdriver放在chrome文件夹中

webdriver放在chrome文件夹中

免费评分

参与人数 2吾爱币 +4 热心值 +2 收起 理由
苏紫方璇 + 3 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
天尊小帅 + 1 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| lemoncute 发表于 2019-7-19 09:30
super.single430 发表于 2019-7-19 09:16
666,多谢分享.虽然没啥用

提供一种思路,就是 控制浏览器登录和Excel读写可以直接拿来用
 楼主| lemoncute 发表于 2019-7-19 10:40

帮同学做的,他的一个兼职,需要把回帖整理成表格发给公司。
super.single430 发表于 2019-7-19 09:16
水鸟 发表于 2019-7-19 09:17
谢谢分享不明觉厉
looleyy 发表于 2019-7-19 09:24
666,多谢分享.虽然用不到
安兆童 发表于 2019-7-19 09:26
谢谢分享一下!
灵影 发表于 2019-7-19 09:28
学习python中。
kylekai27 发表于 2019-7-19 09:38

谢谢分享一下!
showwh 发表于 2019-7-19 09:59

666,多谢分享.可以拿来干什么呢
q546624527 发表于 2019-7-19 10:12
有什么用呢?
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-16 11:35

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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