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单线程实现多个定时器示例
Mar 30 Python
Python重新引入被覆盖的自带function
Jul 16 Python
使用相同的Apache实例来运行Django和Media文件
Jul 22 Python
python实现多线程的方式及多条命令并发执行
Jun 07 Python
pandas Dataframe行列读取的实例
Jun 08 Python
Anaconda下配置python+opencv+contribx的实例讲解
Aug 06 Python
Python txt文件加入字典并查询的方法
Jan 15 Python
postman传递当前时间戳实例详解
Sep 14 Python
Python通过递归获取目录下指定文件代码实例
Nov 07 Python
Pytorch 使用不同版本的cuda的方法步骤
Apr 02 Python
python 多线程共享全局变量的优劣
Sep 24 Python
python 如何引入协程和原理分析
Nov 30 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
用php来检测proxy
2006/10/09 PHP
php递归删除目录下的文件但保留的实例分享
2014/05/10 PHP
php中多维数组按指定value排序的实现代码
2014/08/19 PHP
PHP中实现接收多个name相同但Value不相同表单数据实例
2015/02/03 PHP
在Yii2中使用Pjax导致Yii2内联脚本载入失败的原因分析
2016/03/06 PHP
php安装ssh2扩展的方法【Linux平台】
2016/07/20 PHP
php实现微信公众平台发红包功能
2018/06/14 PHP
php实现构建排除当前元素的乘积数组方法
2018/10/06 PHP
PHP实现的用户注册表单验证功能简单示例
2019/02/25 PHP
JS中window.open全屏命令解析及使用示例
2013/12/11 Javascript
javascript实现支持移动设备画廊
2015/08/24 Javascript
jQuery判断checkbox选中状态
2016/05/12 Javascript
理解JavaScript原型链
2016/10/25 Javascript
AngularJS实现动态编译添加到dom中的方法
2016/11/04 Javascript
vue-cli项目中怎么使用mock数据
2017/09/27 Javascript
jQuery图片查看插件Magnify开发详解
2017/12/25 jQuery
vue中$refs的用法及作用详解
2018/04/24 Javascript
微信小程序实现简单评论功能
2018/11/28 Javascript
vue 内置过滤器的使用总结(附加自定义过滤器)
2018/12/11 Javascript
JS实现的类似微信聊天效果示例
2019/01/29 Javascript
javascrit中undefined和null的区别详解
2019/04/07 Javascript
uni-app如何页面传参数的几种方法总结
2020/04/28 Javascript
[06:16]DOTA2守卫传承者——职业选手谈心路历程
2015/02/26 DOTA
《Python学习手册》学习总结
2018/01/17 Python
对Python中DataFrame按照行遍历的方法
2018/04/08 Python
Python实现的tcp端口检测操作示例
2018/07/24 Python
Python版名片管理系统
2018/11/30 Python
scikit-learn线性回归,多元回归,多项式回归的实现
2019/08/29 Python
Django用数据库表反向生成models类知识点详解
2020/03/25 Python
python 使用cycle构造无限循环迭代器
2020/12/02 Python
JYSK加拿大:购买家具、床垫、家居装饰等
2020/02/14 全球购物
董事长秘书岗位职责
2013/11/29 职场文书
大学生简短的自我评价分享
2014/02/20 职场文书
2016新年致辞
2015/08/01 职场文书
导游词之山海关
2019/12/10 职场文书
pytorch 一行代码查看网络参数总量的实现
2021/05/12 Python