分享一个 CSDN 自动评论角本
先修改帐户名和密码
import requests
from BeautifulSoup import BeautifulSoup
import time
def commitfunc(source_id, refer):
print source_id, refer
commiturl='http://download.csdn.net/index.php/comment/post_comment?jsonpcallback=jsonp1419934439524&sourceid='+source_id+'&content=%E6%88%90%E5%8A%9F%E9%85%8D%E5%AF%B9%EF%BC%8C%E5%8F%AF%E4%BB%A5%E4%BD%BF%E7%94%A8%E3%80%82&rating=5&t=1419935091974'
commitdata = {
"Accept" : "text/javascript, application/javascript, */*",
"Accept-Encoding" : "gzip, deflate, sdch",
"Accept-Language" : "zh-CN,zh;q=0.8",
"Connection" : "keep-alive",
"Content-Type" :"application/x-www-form-urlencoded",
"cookie" : "",
"Host" : "download.csdn.net",
"Refer" : refer,
"User-Agent" : "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36",
"X-Requested-With" : "XMLHttpRequest",
"jsonpcallback" : "jsonp1419934439524",
"sourceid" : source_id,
"content" : "a good resource, it's worth to download it",
"rating" : "5",
"t" : "1419935091974",
}
resp = sess_source.post(commiturl, commitdata)
print resp.text
def GetPageCount():
url_source_page = url_source + "1"
html_source = sess_source.get(url_source_page).text
soup_source = BeautifulSoup(html_source)
#resource_once = soup_source.findAll('h3')
page_count = soup_source.find('div', attrs={'class': "page_nav"}).text
page_list = page_count.split()
page_ac = page_list[2].split('&')
return page_ac[0][1:len(page_ac[0])-1]
def CommitWholePage(page_nu):
url_source_page = url_source + page_nu
html_source = sess_source.get(url_source_page).text
soup_source = BeautifulSoup(html_source)
resource_once = soup_source.findAll('h3')
for element in resource_once:
if(len(element) > 1):
try:
#print type(element.contents[0].attrs[0][1])
#print element.contents[0].attrs[0][1]
attr = element.contents[0].attrs[0][1].split('/')
reftext = '/detail/' + attr[2] + '/' + attr[3] + '#comment'
result = soup_source.findAll('a', attrs={'href' : reftext, 'class' : 'btn-comment'})
if len(result) != 0:
#sess_source.get(url_source_page)
commitfunc(attr[3], attr[2])
print attr[2]
print attr[3]
print "sleep"
time.sleep(70)
except Exception, e:
s = traceback.format_exc()
print s
def logincsdn():
html_login = sess_source.get(url_login).text
soup_login = BeautifulSoup(html_login)
lt_value = soup_login.findAll('input', attrs={'name': "lt"})[0]['value']
execution_value = soup_login.findAll('input', attrs={'name': "execution"})[0]['value']
data_login = {
"lt" : lt_value,
"execution" : execution_value,
"_eventId" : "submit",
"username" : "用户名",
"password" : "密码"
}
sess_source.post(url_login, data_login)
print "start auto comment"
#main begin
url_login = "http://passport.csdn.net/account/login"
url_source = "http://download.csdn.net/my/downloads/"
sess_source = requests.session()
logincsdn()
total_page = GetPageCount()
print "total page",total_page
for num in range(1,int(total_page)+1):
print "current page", num
CommitWholePage(str(num))
print "app stop "
分享一个 CSDN 自动评论角本的更多相关文章
- CSDN 自动评论
转载说明 本篇文章可能已经更新,最新文章请转:http://www.sollyu.com/csdn-auto-reviews/ 说明 当打开http://download.csdn.net/my/do ...
- 分享一个微信自动跳转外部浏览器下载app的api接口!
现在微信渠道可以说是拉新最快的渠道,因为微信具备强裂变性.但是目前微信对第三方下载链接的拦截是越来越严格了,那么想要在微信内肆无忌惮地推广链接就需要用到微信跳转浏览器的接口,那如何获取该接口呢? ...
- python登录csdn并自动评论下载资源脚本
功能 1.自动登录csdn 2.查找未评论的资源并自动评论 用到的库 1.python自带的requests,获取以及发送网页数据 2.python自带的time,用作休眠,csdn资源一段时间内只允 ...
- 分享一个快速设置背景的js 自动获取背景图的长宽
我来分享一个快速设置背景的js (需要jq支持!) 快速切图铺页面用---就是不需要手动输入背景图的长宽 自动获取背景图的长宽 : <div class="wrap"> ...
- 【微信支付】分享一个失败的案例 跨域405(Method Not Allowed)问题 关于IM的一些思考与实践 基于WebSocketSharp 的IM 简单实现 【css3】旋转倒计时 【Html5】-- 塔台管制 H5情景意识 --飞机 谈谈转行
[微信支付]分享一个失败的案例 2018-06-04 08:24 by stoneniqiu, 2744 阅读, 29 评论, 收藏, 编辑 这个项目是去年做的,开始客户还在推广,几个月后发现服务器已 ...
- 分享一个常用Adb命令
分享一个常用Adb命令 首先 首先感谢@xuxu的常用adb命令,收益良多,但是已经不能满足于我,所以补充了下. 再者 好久没发帖了,最近论坛老司机们都在讨论/总结,我就用这个干货回报吧. 最后 基于 ...
- 作业二:个人编程项目——编写一个能自动生成小学四则运算题目的程序
1. 编写一个能自动生成小学四则运算题目的程序.(10分) 基本要求: 除了整数以外,还能支持真分数的四则运算. 对实现的功能进行描述,并且对实现结果要求截图. 本题发一篇随笔,内容包括: 题 ...
- 分享一个Mongodb PHP封装类
<?php /** * Mongodb 基本操作API,支持基本类似关系统型数据库的操作接口 * * @version 1.0 * [说明] * * 1:该版本API实现了 Mongodb 中最 ...
- 分享一个强大的采集类,还可以模拟php多进程
做采集的时候,可以使用file_get_contents()去获取网页源代码,但是使用file_get_contents采集,速度慢,而且超时时间,不好控制.如果采集的页面不存在,需要等待的时间很长. ...
随机推荐
- php定界符 <<< 的作用及使用注意事项
按照原样输出,包括换行符.特殊字符等 任何特殊字符都不需要转义,比如双引号.单引号,它会按照原样输出 像在双引号字符串中一样使用php的变量输出 定界符<<<,当需要输出大段文本时, ...
- hdu1715 大菲波数
转载请注明出处:http://blog.csdn.net/u012860063 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1715 Problem ...
- 2014-CVTE网测部分软件技术测试题及答案
1.叉树的先序遍历序列和后序遍历序列正好相反,则该二叉树满足的条件是(D) A.空或只有一个结点 B.高度等于其结点数 C.该二叉树是完全二叉树 D.所有结点无右孩子 应该是二叉树的每个结点都只有一个 ...
- 深入分析MySQL ERROR 1045 (28000)
这几天在MySQL新建用户后.出现訪问拒绝的问题,错误码为ERROR 1045(28000).在网上搜索了非常久.找到了非常多解决的方法,但非常遗憾的是这么多办法没有一个能解决该问题.尽管出现的错误码 ...
- Andorid Binder进程间通信---Binder本地对象,实体对象,引用对象,代理对象的引用计数
本文參考<Android系统源码情景分析>,作者罗升阳. 一.Binder库(libbinder)代码: ~/Android/frameworks/base/libs/binder --- ...
- 前端笔试面试中的常用知识点总结(CSS)
1.CSS选择器的优先级!important > 内联 > id选择器 > 类选择器 > 标签选择器多个类选择器叠加(256)之后的优先级大于一个id选择器!importan ...
- 法方总经理用的笔记本电脑&一体机拆开图。
键盘上有三个字符,
- FreeCodeCamp:Truncate a string
要求: 用瑞兹来截断对面的退路! 截断一个字符串! 如果字符串的长度比指定的参数num长,则把多余的部分用...来表示. 切记,插入到字符串尾部的三个点号也会计入字符串的长度. 但是,如果指定的参数n ...
- js基础之冒号
js中冒号的作用有两种, 转自:http://www.kqiqi.com/knowledge/web-based/506.html 一.?: 操作符 a = expression ? b : c;如果 ...
- shell 脚本中$$,$#,$?分别代表什么意思?
$0 这个程式的执行名字$n 这个程式的第n个参数值,n=1..9$* 这个程式的所有参数,此选项参数可超过9个.$# 这个程式的参数个数$$ 这个程式的PID(脚本运行的当前进程ID号)$! 执行上 ...