700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Python爬虫入门教程 54-100 博客园等博客网站自动评论器

Python爬虫入门教程 54-100 博客园等博客网站自动评论器

时间:2020-05-09 20:04:32

相关推荐

Python爬虫入门教程 54-100 博客园等博客网站自动评论器

爬虫背景

爬虫最核心的问题就是解决重复操作,当一件事情可以重复的进行的时候,就可以用爬虫来解决这个问题,今天要实现的一个基本需求是完成“博客园“ 博客的自动评论,其实原理是非常简单的,提炼一下需求

基本需求

登录博客园<不实现,登录单独编写博客>调用评论接口返回请求结果

确定流程之后,基本就是找突破口的环节了

实际的去评论一下,然后不管你用什么抓包工具都可以,只要抓取到你想要的数据,即可

评论API如下

Request URL: /mvc/PostComment/Add.aspxRequest Method: POST

POST URL 有了,下面就是参数的问题

我随便找了一个请求的参数

{"blogApp":"wuxiaobin","postId":10510784,"body":"继续研究","parentCommentId":0}

分析参数

blogApp 是博主的用户昵称

postid 是博文的ID

body 评论主体

parentCommentid 看参数命名知道应该是指的回复的那条ID

分析到这里,你就可以开始模拟请求了,一般情况下是不成功的,因为我们没有登录,不过,代码先写起来

观察请求头参数

请求头基本包含一些用户信息,必备部分如下,剩下的就是cookies部分了

origin: referer: /user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64) x-requested-with: XMLHttpRequest

编写代码

import requestsimport jsonclass CnBlogs(object):def __init__(self):self._url = "/mvc/PostComment/Add.aspx"def run(self):params = {"blogApp":"wuxiaobin", # 博主ID"postId":10510784, # 评论博文的ID"body":"继续研究b", # 评论内容"parentCommentId":0}headers = {"origin": "","referer": "/","user-agent": "浏览器UA","x-requested-with": "XMLHttpRequest","cookie":".CNBlogsCookie=重要参数;"}res = requests.post("/mvc/PostComment/Add.aspx",data=params,headers=headers)print(json.loads(res.text))if __name__ == '__main__':cnblogs = CnBlogs()cnblogs.run()

重要提示

经过我的测试,发现判断博客园用户是否登录,关键的是cookie 这个在我之前的博客有涉及,2种写法,重点是你如何去获取,一般情况下,手动获取即可

登录采用的是人机识别验证,这个我单独写一篇博文去研究,目前阶段,你手动获取即可

其他的参数,在加载博客的时候,就可以用网页解析相关的知识解析出来,没有难度

如何你想要做成全自动化的,也可以,只需要控制发帖时间随机,发帖内容随机即可,加上一个时间戳也是一个非常不错的解决方案

发帖成功

测试中一定要解析返回的JSON字符串,确定里面的成功和异常信息

{'IsSuccess': True,'Message': '<div class="comment_my_posted">... ...</div>','Duration': '171'}

博客园自动评价Over

所有网站的评论原理是相通的,你可以自行研究掘金,CSDN,简书等各种文章类平台,自动评论需要的是大量的用户,动态的IP,其余都不是问题~ 本文章仅供学习,切勿用于恶意用途。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。