python--爬虫--利用cookie登录网络教学中心刷评论
声明:本文仅供学习参考
这个功能终于实现了,如果请求太快,很容易被系统发现(输入验证码)所以没用多线程
对于cookie的获取采取手动方式,也可以尝试从浏览器获取cookie,cookie需要转化为字典形式
# coding :utf-8
# @Time : 2017/8/7 8:00
# @Author : Yong-life
# @File : translateCookies.py
def translatestr(cookie):
cookie = cookie.replace('Cookie:','')
cookie = cookie.replace(' ','')
cookies = cookie.split(';')
for i in range(len(cookies)):
cookies[i] = cookies[i].replace('=', ':', 1)
cookies_dict = {}
for header in cookies:
L = header.split(':' ,1)
cookies_dict[L[0]] = L[1]
return cookies_dict
手动模拟了几遍,发现关键的几部,就可以完成了
# coding :utf-8
# @Time : 2017/8/7 9:19
# @Author : Yong-life
# @File : CrawlingNetStudyRoom.py
import re
import time
import requests
from translateCookies import translatestr
def gethtml(url):
cookie = '__dxca=75091f84-4096-4d77-ba79-47356cc19b1e; 2334userinfo=bd47f4dce1b38171d15866435d79f7a9d807a544f7930b6abeaaa6286f1f1754e7876672f860a859c0433867ead52763adde0d57e85b541e; 2334UID=27561080; 2334enc=2DC5074C7374D67F2ACD4C1F5A7E7F56; _uid=27561080; uf=0d7d2f765ae428714a3fffffed66c4445f985d480e6f2f069b0594e13f4b452f9f4fcd6f19e32a2edcaf7a1eebd6007c0d8a4c92b12beb4be5b05dc70bcb18cfc05a9b956030332946da21146a924e23; _d=1502066525521; UID=27561080; vc=2DC5074C7374D67F2ACD4C1F5A7E7F56; vc2=AD5E945ED353A9AE790FA793E860A279; DSSTASH_LOG=C_38-UN_968-US_27561080-T_1502066525521; k8s=ba998ae2451b05102dd62f59c4aae09e27424974; route=7aaebcbdcf7cf94856c7fb5f82d77b4b; fanyamoocs=5CED1B5320BFFBA211401F839C536D9E; fid=2334; isfyportal=1; JSESSIONID=42822D4D414525EFAF03F092E432FCEA'
cookie = translatestr(cookie)
header = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36',
'Content-Type': 'text/html;charset=UTF-8'#
}
response = requests.get(url, headers=header, cookies=cookie)
return response.text
def crawlingClassid(html):
classidList = []
pattern_classid = 'class="Mcon1img httpsClass" >[\s]*<a[\s]*href=\'(.*?)\' target="_blank" >'
classidList.extend(re.findall(pattern_classid, html))
fileList = []
pattern_file = r'class="Mcon1img">[\s]*<input type="hidden" value="(.*?)" />'
fileList.extend(re.findall(pattern_file, html))
for file_id in fileList:
file_url = 'http://mooc1.xynu.edu.cn/visit/courses/study?isAjax=true&fileId=' + file_id
classidList.extend(crawlingClassid(gethtml(file_url)))
return classidList
def sendMsg(courseId, clazzid, count):
url = 'http://mooc1.xynu.edu.cn/bbscircle/grouptopic/publish'
cookie = '__dxca=75091f84-4096-4d77-ba79-47356cc19b1e; 2334userinfo=bd47f4dce1b38171d15866435d79f7a9d807a544f7930b6abeaaa6286f1f1754e7876672f860a859c0433867ead52763adde0d57e85b541e; 2334UID=27561080; 2334enc=2DC5074C7374D67F2ACD4C1F5A7E7F56; _uid=27561080; uf=0d7d2f765ae428714a3fffffed66c4445f985d480e6f2f069b0594e13f4b452f9f4fcd6f19e32a2edcaf7a1eebd6007c0d8a4c92b12beb4be5b05dc70bcb18cfc05a9b956030332946da21146a924e23; _d=1502066525521; UID=27561080; vc=2DC5074C7374D67F2ACD4C1F5A7E7F56; vc2=AD5E945ED353A9AE790FA793E860A279; DSSTASH_LOG=C_38-UN_968-US_27561080-T_1502066525521; k8s=ba998ae2451b05102dd62f59c4aae09e27424974; route=7aaebcbdcf7cf94856c7fb5f82d77b4b; fanyamoocs=5CED1B5320BFFBA211401F839C536D9E; fid=2334; isfyportal=1; JSESSIONID=42822D4D414525EFAF03F092E432FCEA'
cookie = translatestr(cookie)
header = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36',
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' #
}
for i in range(1, count):
data = ('courseId='+ courseId +'&clazzid='+ clazzid +'&title='+ str(i) +'&content=&type=4&files=').encode('utf-8')
print('send: ' + courseId +' '+ str(i))
response = requests.post(url, data, cookies=cookie, headers=header)
time.sleep(3)
def managerCrawling():
url = 'http://mooc1.xynu.edu.cn/visit/courses?template=1&s=7c6b45e1ac1448adf0ff862c75c8ab3f'
html = gethtml(url)
MAX_COUNT = 3
class_url_list = crawlingClassid(html)
threads = []
for i,url in zip(range(len(class_url_list)), class_url_list):
pattern_class = r'courseId=(.*?)&clazzid=(.*?)&enc'
regx = re.search(pattern_class, url)
courseId, clazzid = regx.group(1), regx.group(2)
sendMsg(courseId, clazzid, MAX_COUNT)
if __name__=='__main__':
managerCrawling()
效果:


python--爬虫--利用cookie登录网络教学中心刷评论的更多相关文章
- 用cookie登录慕课网络教学中心刷评论
声明:本文仅供学习参考 我们学校和的网络教学平台是在慕课网上的,需要登录到慕课网的教学平台以后,拿到cookie 注意:没次提交后需要休眠,否则刷评论过快会被系统发现 如果请求太快,很容易被系统发现( ...
- python爬虫-使用cookie登录
前言: 什么是cookie? Cookie,指某些网站为了辨别用户身份.进行session跟踪而储存在用户本地终端上的数据(通常经过加密). 比如说有些网站需要登录后才能访问某个页面,在登录之前,你想 ...
- python爬虫+使用cookie登录豆瓣
2017-10-09 19:06:22 版权声明:本文为博主原创文章,未经博主允许不得转载. 前言: 先获得cookie,然后自动登录豆瓣和新浪微博 系统环境: 64位win10系统,同时装pytho ...
- Python爬虫之模拟登录微信wechat
不知何时,微信已经成为我们不可缺少的一部分了,我们的社交圈.关注的新闻或是公众号.还有个人信息或是隐私都被绑定在了一起.既然它这么重要,如果我们可以利用爬虫模拟登录,是不是就意味着我们可以获取这些信息 ...
- Python爬虫-百度模拟登录(二)
上一篇-Python爬虫-百度模拟登录(一) 接上一篇的继续 参数 codestring codestring jxG9506c1811b44e2fd0220153643013f7e6b1898075 ...
- js利用cookie登录网站
如上图,我们获取到了cookie,接下来利用cookie登录相应的网站. 我用的浏览器是火狐,首先在特定的网站(也就是我们发现XSS漏洞的网站,这里指的是pikachu)F12打开开发者工具,找到控制 ...
- 1.python+selenium利用cookie,跳过验证码直接登录
方法1 在登录时,叫代码等待一段时间,然后手动输入验证码 # coding:utf-8 from selenium import webdriver import time url = 'http:/ ...
- 【Python爬虫】01:网络爬虫--规则
Python网络爬虫与信息提取 目标:掌握定向网络数据爬取和网页解析的基本能力. the website is the API 课程分为以下部分: 1.requsets库(自动爬取HTML页面.自动网 ...
- Python爬虫之Cookie和Session
关于cookie和session估计很多程序员面试的时候都会被问到,这两个概念在写web以及爬虫中都会涉及,并且两者可能很多人直接回答也不好说的特别清楚,所以整理这样一篇文章,也帮助自己加深理解 什么 ...
随机推荐
- 远程调用其它站点并设置cookie
远程调用其它站点并设置cookie: 参考js var domainArray = [ {site:'g.com',action:'/b.do?c' } ,{site:'www.baidu.com', ...
- 如果导入的项目只有源码,可以将其他项目中的.classpath 和 .project复制到根目录下即可。
如果导入的项目只有源码,没有对应的项目配置如web项目,可以将其他项目中的.classpath 和 .project复制到根目录下即可.
- Maven转化为Dynamic Web Module
如今Maven仍然是最常用的项目管理工具,若要将Java Web项目使用Maven进行管理,则首先需要新建Maven项目,然后将其转化为web项目. 在项目右键选择properties,然后点击左侧P ...
- [leetcode-526-Beautiful Arrangement]
Suppose you have N integers from 1 to N. We define a beautiful arrangement as an array that is const ...
- 【LeetCode】125. Valid Palindrome
题目: Given a string, determine if it is a palindrome, considering only alphanumeric characters and ig ...
- 记一次Nginx的配置
记第一次Nginx的配置 Nginx 首先了解到Nginx是干什么的?它有哪些作用?比较常用到的基础功能有反向代理.负载均衡.正向代理.http服务器.这次部署用到的就是反向代理. 反向代理就是指在目 ...
- Linux进程/内核模型
内核必须实现一组服务和相应的接口,应用程序则可以使用这些接口,而不是直接与硬件打交道. Linux内核主要由以下5个子系统组成:进程调度.内存管理.虚拟文件系统.进程间通信以及设备驱动. 在这个组成中 ...
- 基于Metronic的Bootstrap开发框架经验总结(15)-- 更新使用Metronic 4.75版本
在基于Metronic的Bootstrap开发框架中,一直都希望整合较新.较好的前端技术,结合MVC的后端技术进行项目的开发,随着时间的推移,目前Metronic也更新到了4.75版本,因此着手对这个 ...
- Microsoft office2010页码设置----论文、课程设计报告格式
思想:将目录页(含目录页)与目录页以下的页面用分隔符分隔开,单独设置目录页以下的页面页码,删除目录页(含目录)以前的页码. 1.在目录页页面内容最下面一行插入分隔符,实现与下面页面分隔开的目的. 页面 ...
- JavaScript一个google地图获取
<script type="text/javascript"> /** * 返回一个新创建的<img>元素,该元素用于在获取到地理位置信息后,显示一张Goo ...