Python实现的爬虫刷回复功能示例
作者:喝了鹤顶红的我 发布时间:2021-08-30 08:25:22
标签:Python,爬虫
本文实例讲述了Python实现的爬虫刷回复功能。分享给大家供大家参考,具体如下:
最近闲的无聊,就想着去看看爬虫,顺着爬虫顺利的做到了模拟登录、刷帖子等等,这里简要说一下。
使用Python2.7写的爬虫,对某论坛做模拟登陆和刷帖子、回复等等,由于之前是没有接触过爬虫,这次之后感觉爬虫很强大,能做很多事,先来贴几张图。
由于论坛不让使用相同的文字,所以调用了笑话的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程序设计有所帮助。
来源:https://blog.csdn.net/qq_34067821/article/details/80404444


猜你喜欢
- 下文通过图文并茂的方式给大家介绍mssqlserver数据库导出到另外一个数据库的方法,具体详情请看下文。1.准备源数据库,找到想要导出的数
- 首先需要安装itchat库,可以pip install itchat安装,也可以在pycharm里安装# -*- coding:utf-8
- 在本篇的开始之前,我必须阐明,我们对数组无论是索引还是切片,我是通过编号(或称为序列号)来进行操作,请记住:无论是 0轴(行)还是 1轴(列
- 钉钉开放平台传送门:https://open.dingtalk.com我司使用钉钉作为内部通讯工具,基本上大家在电脑和手机上都开着,消息可以
- 很早以前就有很多关于用CSS制作的相册,今天突然想看又找不到,反正也无聊,自己做了一下,结果做一下发现自己温习了一些东西。还行,
- 问题在使用MySQL数据库的时候,经常会遇到这么一个问题,就是“Can not connect to MySQL server. Too m
- 需要安装pywin32模块,pip install pywin32##pip install pywin32import win32api,
- 昨天我只是将数据库附加到SQL2012,然后各个数据库都做了收缩事务日志的操作兼容级别这些都没有改再附加回SQL2005的时候就报错在SQL
- 定位原理很简单,故不赘述,直接上源码,内附注释。(如果对您的学习有所帮助,还请帮忙点个赞,谢谢了)#!/usr/bin/env python
- 一、准备工作1、确保jdk已安装成功,并且jdk版本选用1.7以上版本2、准备一台新的主机mysql_mycat放到master的前面做代理
- FlaskFlask是什么?Flask是一个使用 Python 编写的轻量级 Web 应用框架, 让我们可以使用Python语言快速搭建We
- 演示源码展示创建画布<canvas width="300" height="300" styl
- 日常在网站使用过程中经常遇到图形验证,今天准备自己做个图形验证码,这算是个简单的功能,也适合新手练习的,便于自己学习。 主要用到的库--PI
- 在main.js里进行全局注册 Vue.prototype.funcName = function (){}在所有组件里可调用this.fu
- 最近,帮同事重写了一个MySQL SQL语句,该SQL语句涉及两张表,其中一张表是字典表(需返回一个字段),另一张表是业务表(本身就有150
- 映射类型 — dict字典可用多种方式来创建:使用花括号内以逗号分隔键: 值对的方式: {‘jack
- 1查看Linux发行版本[root@typecodes ~]# cat /etc/redhat-releaseCentOS Linux re
- map()函数map() 会根据提供的函数对指定序列做映射,是内置函数第一个参数 function 以参数序列中的每一个元素调用 funct
- 万维网联盟(W3C)发布了HTML 5规格说明书的草稿 ,这是自HTML 4在十多年前发布以来的第一个主要的修订版.在这期间,随着开发者逐渐
- 问题:输出新建的DataFrame对象时,DataFrame中各列的显示顺序和DataFrame定义中的顺序不一致。例如:import pa