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请求和响应报 ...
随机推荐
- Jqgrid入门-结合Struts2+json实现数据展示(五)
DEMO用的是ssh框架实现的,具体怎么搭建的就不多做说明了.分页表格的数据操作难点就是数据展现.至于增删改直接用hibernate原生的方法实现即可. 初步分析:表格要实现分页,那么 ...
- CentOS6.2下fastDFS的完整安装和配置步骤
centos6.2系统下安装配置FastDFS步骤: 1:安装libevent(libevent-2.0.16-stable) ##卸载系统自带libevent rpm -qa|grep libeve ...
- Java [Leetcode 263]Ugly Number
题目描述: Write a program to check whether a given number is an ugly number. Ugly numbers are positive n ...
- 【转】cocos2d-x Lua
Call custom c++ from Lua cocos2d-x lua binds c++ class, class functions ,enum and some global functi ...
- 项目管理工具:Maven使用方法总结
阅读目录 一.概念 二.Maven安装 三.常用命令 四.生命周期 五.第一个Maven项目 六.POM文件 七.Maven库 八.参考资料 回到顶部 一.概念 Maven是一个项目管理和构建自动化工 ...
- 如何在linux中搭建JEECMS系统
本人正在进行jeecms二次开发,但因win7系统中的Tomcat无法使用,就想起在linux下安装,但去jeecms的官方网站,没有给出在linux下安装的方法,确实苦恼,经过一天的研究,终于大功告 ...
- POJ 1064 Cable master
Cable master Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 37865 Accepted: 8051 Des ...
- 七中滤波方法测试matlab实现
http://blog.163.com/xiaheng0804@126/blog/static/1205282120132129471816/ 创建两个混合信号,便于更好测试滤波器效果.同时用七中滤波 ...
- ASP.NET中常用的字符串分割函数
asp.net字符串分割函数用法 先来看个简单的实例 但是其数组长度却是25,而不是3.下面这种方法是先将“[111cn.net]”替换成一个特殊字符,比如$,在根据这个字符执行Split 例如下面我 ...
- Python中的__init__,__call__
__init__函数 当一个类实例被创建时, __init__() 方法会自动执行,在类实例创建完毕后执行,类似构建函数.__init__() 可以被当成构建函数,不过不象其它语言中的构建函数,它并不 ...