python登录csdn并自动评论下载资源脚本
功能
1.自动登录csdn
2.查找未评论的资源并自动评论
用到的库
1.python自带的requests,获取以及发送网页数据
2.python自带的time,用作休眠,csdn资源一段时间内只允许评论一个资源,每评论一个资源要休息一段时间
3.BeautifulSoup,解析html文本,搜索文本中指定的标签和属性
过程
1.用chrome的开发者工具抓取登录以及评论的数据包,获取数据包格式
2.requests获取指定页面html文本
3.BeautifulSoup分析页面属性,提取评论以及登录必须的页面信息
4.对BeautifulSoup的结果进行筛选,去掉一些干扰的标签信息,并判断资源是否评论过
5.组装评论消息并post。
脚本
import requests
from BeautifulSoup import BeautifulSoup
import time def commitfunc(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" : "",
"t" : "",
}
sess_source.post(commiturl, commitdata) def GetPageCount():
url_source_page = url_source + ""
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):
#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) 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" : "xxxxx",
"password" : "xxxxx"
}
sess_source.post(url_login, data_login) #main begin
url_login = "https://passport.csdn.net/account/login"
url_source = "http://download.csdn.net/my/downloads/"
sess_source = requests.session() logincsdn()
total_page = GetPageCount()
for num in range(1,int(total_page)):
CommitWholePage(str(num))
欢迎咨询和指正,python菜鸟一枚。
BeautifulSoup中文资料站:http://www.crummy.com/software/BeautifulSoup/bs3/documentation.zh.html#Iterating%20over%20a%20Tag
python登录csdn并自动评论下载资源脚本的更多相关文章
- VC使用libcurl模拟登录CSDN并自动评论资源以获取积分
环境:Win7 64位+VC2008 软件及源码下载:(http://pan.baidu.com/s/1jGE52pK) 涉及到的知识点: C++多线程编程 libcurl的使用(包括发送http请求 ...
- libcurl模拟登录CSDN并自动评论资源以获取积分
软件及源码下载:(http://pan.baidu.com/s/1jGE52pK) 涉及到的知识点: C++多线程编程 libcurl的使用(包括发送http请求.发送cookie给服务器.保存coo ...
- [2019.04.16] 由Python写成的自动解压脚本
很久很久以前(二十七天吧……大概)被要求写一个脚本来检索并解压磁盘上所有的以特定格式命名的tar文件,于是乎学习和摸鱼就一起开始了. 这次要写的脚本,针对的是这样的文件结构: 文件结构如上图所示 可以 ...
- Python简单实现自动评论、自动点赞、自动关注脚本
一些哔哔: 今天的这个脚本,是一个别人发的外包,交互界面的代码就不在这里说了,但是可以分享下自动评论.自动点赞.自动关注.采集评论和视频的数据是如何实现的 开发环境 python 3.8 运行代码py ...
- [Python爬虫] Selenium实现自动登录163邮箱和Locating Elements介绍
前三篇文章介绍了安装过程和通过Selenium实现访问Firefox浏览器并自动搜索"Eastmount"关键字及截图的功能.而这篇文章主要简单介绍如何实现自动登录163邮箱,同时 ...
- 2.如何实现使用VBS脚本程序对直播间自动评论
前言:本文使用的是VBS脚本,实现了对繁星直播自动登录,自动进入房间并且自动评论. 前提准备:把需要刷的评论放到mysql中,再使用vbs读出评论 -------------------------- ...
- 「懒惰的美德」我用 python 写了个自动生成给文档生成索引的脚本
我用 python 写了一个自动生成索引的脚本 简介:为了刷算法题,建了一个 GitHub仓库:PiperLiu / ACMOI_Journey,记录自己的刷题轨迹,并总结一下方法.心得.想到一个需求 ...
- 基于python的request库,模拟登录csdn博客
以前爬虫用urllib2来实现,也用过scrapy的爬虫框架,这次试试requests,刚开始用,用起来确实比urllib2好,封装的更好一些,使用起来简单方便很多. 安装requests库 ...
- 第14.16节 爬虫实战2:赠人玫瑰,手留余香! request+BeautifulSoup实现csdn博文自动点赞
写在前面:本文仅供参考学习,请勿用作它途,禁止转载! 在<第14.14节 爬虫实战准备:csdn博文点赞过程http请求和响应信息分析>老猿分析了csdn博文点赞处理的http请求和响应报 ...
随机推荐
- C# 创建iis站点以及IIS站点属性,iis不能启动站点
DontLog = False是否将客户端的请求写入日志文件 2011年04月09日 #region CreateWebsite 新增网站 public string CreateWebSite(st ...
- UVa 11859 (Nim) Division Game
把每一行m个数所有的素因子看做一堆,就把问题转化为n堆的Nim游戏. 然后预处理一下10000以内每个数素因数的个数,再根据书上的Bouton定理,计算一下n行素因数个数的异或和. 为0是先手必败局面 ...
- BZOJ 3166 Alo
处理出每个数最靠近它的左右两个比它大的数. 然后可持久化trie. #include<iostream> #include<cstdio> #include<cstrin ...
- linux面试题1
一.填空题:1. 在Linux系统中,以 文件 方式访问设备 .2. Linux内核引导时,从文件 /etc/fstab 中读取要加载的文件系统.3. Linux文件系统中每个文件用 i节点 来标识. ...
- 【转】linux驱动开发的经典书籍
原文网址:http://www.cnblogs.com/xmphoenix/archive/2012/03/27/2420044.html Linux驱动学习的最大困惑在于书籍的缺乏,市面上最常见的书 ...
- ASP.NET CORE Web浏览器和Web服务器
//web浏览器 //浏览器本质的原理:浏览器向服务器发请求,服务器把请求的内容返回给浏览器,然后浏览器把返回的内容绘制成一个图形化的界面 //Socket一种通讯交流的技术 //qq用户把信息通过s ...
- YUV采样及存储格式
YUV,分为三个分量,“Y”表示明亮度(Luminance或Luma),也就是灰度值:而“U”和“V” 表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素 ...
- Multiple View Geometry in Computer Vision Second Edition by Richard Hartley 读书笔记(一)
var bdots = "../" var sequence = [ 'l1', 'l2', 'l3', 'l4' ]; Chapter1是个总览,引出了射影几何的概念,通过在欧式 ...
- Tableau学习笔记之一
书本:Tableau数据可视化实战,Ashutosh Nandeshwar著 学习时主要采用Tableau Desktop 9.0,由于该软件是商业软件,价格不菲,故只能试用,期限为14天,可以通过修 ...
- C#条件语句、循环语句
一.程序的三种结构 顺序结构 分支结构 循环结构 二.条件语句if 语句是最有用的控制结构之一. if … else …语句的语法: if (布尔表达式)执行操作的语句 或if (布尔表达式)执行操 ...