Python实现的爬虫刷回复功能示例


Posted in Python onJune 07, 2018

本文实例讲述了Python实现的爬虫刷回复功能。分享给大家供大家参考,具体如下:

最近闲的无聊,就想着去看看爬虫,顺着爬虫顺利的做到了模拟登录、刷帖子等等,这里简要说一下。

使用Python2.7写的爬虫,对某论坛做模拟登陆和刷帖子、回复等等,由于之前是没有接触过爬虫,这次之后感觉爬虫很强大,能做很多事,先来贴几张图。

Python实现的爬虫刷回复功能示例

由于论坛不让使用相同的文字,所以调用了笑话的api,达到不同文字的目的。

该论坛使用的是cookie,所以先去获取一下cookie,顺便将cookie写到文件里面。

'''
获取cookie
'''
def get_cookie(login_data, url, testurl=None):
  filename = "cookie"
  cookie = cookielib.MozillaCookieJar(filename)
  hadler = urllib2.HTTPCookieProcessor(cookie)
  opener = urllib2.build_opener(hadler)
  post_data = urllib.urlencode(
    {'logname': 123456, "logpass": "123456", "action": "login", })
  url = 'http://*****.me/waplogin.aspx'
  opener.open(url, post_data)
  cookie.save(ignore_discard=True, ignore_expires=True)
  print("获取成功")
  # print(opener.open(testurl).read())

先要分析该网站登录地址,登录需要的参数,如上代码

获得cookie之后,分析该论坛的回复参数,该论坛采用的是post提交,需要有帖子id,回复内容等等,分析之后得到如下代码

代码先加载文件里面的cookie,然后调用了haha这个笑话api,当然我已经将这个api的json进行了处理,这里只要笑话内容就行。

'''
回复帖子
'''
def post_reply():
  filename = "cookie"
  cookie = cookielib.MozillaCookieJar(filename)
  cookie.load(filename, ignore_discard=True, ignore_expires=True)
  handler = urllib2.HTTPCookieProcessor(cookie)
  opener = urllib2.build_opener(handler)
  num=0
  for i in range(216255, 800000):
    num = num + 1
    huifu = urllib.urlencode(
      {'sendmsg': 0, "content": str(haha(num)), "action": "add", "id": str(i), "classid": 177})
    gradeUrl = 'http://******.me/bbs/book_re.aspx'
    result = opener.open(gradeUrl)
    print result.read()
    print "当前第" + str(num) + "" + "次回帖"
    print("当前帖子id" + str(i))
    sleep(1)

发帖子代码:

'''
发帖子(普通帖子或者加悬赏分的帖子:并不是悬赏板块的帖子)
'''
def post_articles(book_title, book_content, classid=177, sendmoney=0):
  filename = "cookie"
  cookie = cookielib.MozillaCookieJar(filename)
  cookie.load(filename, ignore_discard=True, ignore_expires=True)
  handler = urllib2.HTTPCookieProcessor(cookie)
  opener = urllib2.build_opener(handler)
  post_articles = urllib.urlencode(
    {'sendmsg': 0, "book_title": str(book_title), "action": "gomod", "siteid": "1000",
     "book_content": str(book_content), "classid": classid, "sendmoney": sendmoney})
  gradeUrl = 'http://*****.me/bbs/book_view_add.aspx'
  result = opener.open(gradeUrl, post_articles)
  print(result.read())

将这些代码进行进行调用就可以去刷回复了。

Python实现的爬虫刷回复功能示例

更多关于Python相关内容可查看本站专题:《Python Socket编程技巧总结》、《Python正则表达式用法总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python实现逻辑回归的方法示例
May 02 Python
Python入门之三角函数atan2()函数详解
Nov 08 Python
Python中一些不为人知的基础技巧总结
May 19 Python
python xpath获取页面注释的方法
Jan 14 Python
使用Python实现跳帧截取视频帧
May 31 Python
浅析Python与Mongodb数据库之间的操作方法
Jul 01 Python
Windows下pycharm创建Django 项目(虚拟环境)过程解析
Sep 16 Python
Pycharm创建项目时如何自动添加头部信息
Nov 14 Python
Python3常用内置方法代码实例
Nov 18 Python
如何用OpenCV -python3实现视频物体追踪
Dec 04 Python
通过cmd进入python的步骤
Jun 16 Python
python使用yaml 管理selenium元素的示例
Dec 01 Python
异步任务队列Celery在Django中的使用方法
Jun 07 #Python
浅谈python中对于json写入txt文件的编码问题
Jun 07 #Python
Python查看微信撤回消息代码
Jun 07 #Python
spark: RDD与DataFrame之间的相互转换方法
Jun 07 #Python
Python简单实现网页内容抓取功能示例
Jun 07 #Python
pyspark 读取csv文件创建DataFrame的两种方法
Jun 07 #Python
redis之django-redis的简单缓存使用
Jun 07 #Python
You might like
深入理解ob_flush和flush的区别(ob_flush()与flush()使用方法)
2013/02/06 PHP
php安装dblib扩展,连接mssql的具体步骤
2017/03/02 PHP
JQuery 弹出框定位实现方法
2010/12/02 Javascript
JavaScript之HTMLCollection接口代码
2011/04/27 Javascript
用js判断页面刷新或关闭的方法(onbeforeunload与onunload事件)
2012/06/22 Javascript
详解Vue自定义过滤器的实现
2017/01/10 Javascript
深入理解JavaScript中的尾调用(Tail Call)
2017/02/07 Javascript
js前端日历控件(悬浮、拖拽、自由变形)
2017/03/02 Javascript
JavaScript中清空数组的三种方式
2017/03/22 Javascript
AngularJS中下拉框的基本用法示例
2017/10/11 Javascript
Vue cli+mui 区域滚动的实例代码
2018/01/25 Javascript
深入剖析Express cookie-parser中间件实现示例
2018/02/01 Javascript
Vue实现数据表格合并列rowspan效果
2020/11/30 Javascript
解决一个微信号同时支持多个环境网页授权问题
2019/08/07 Javascript
vue 父组件通过v-model接收子组件的值的代码
2019/10/27 Javascript
微信小程序在text文本实现多种字体样式
2019/11/08 Javascript
原生js无缝轮播插件使用详解
2020/03/09 Javascript
Vue使用screenfull实现全屏效果
2020/09/17 Javascript
JavaScript实现京东快递单号查询
2020/11/30 Javascript
通过实例解析js可枚举属性与不可枚举属性
2020/12/02 Javascript
JS实现公告上线滚动效果
2021/01/10 Javascript
[52:29]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#3Secret VS OG第三局
2016/03/03 DOTA
Python中无限元素列表的实现方法
2014/08/18 Python
python3+PyQt5图形项的自定义和交互 python3实现page Designer应用程序
2020/07/20 Python
python 异或加密字符串的实例
2018/10/14 Python
Python使用pyautocad+openpyxl处理cad文件示例
2019/07/11 Python
Jmeter调用Python脚本实现参数互相传递的实现
2021/01/22 Python
CSS3 开发工具收集
2010/04/17 HTML / CSS
突袭HTML5之Javascript API扩展1—Web Worker异步执行及相关概述
2013/01/31 HTML / CSS
Linux Interview Questions For software testers
2012/06/02 面试题
学生的自我鉴定范文
2013/10/24 职场文书
财务副总经理工作职责
2013/11/25 职场文书
节约能源标语
2014/06/17 职场文书
工会经费申请报告
2015/05/15 职场文书
2016七夕情人节广告语
2016/01/28 职场文书
Win11如何修改dns?Win11修改dns图文教程
2022/01/18 数码科技