声明:本文仅供学习参考

这个功能终于实现了,如果请求太快,很容易被系统发现(输入验证码)所以没用多线程

对于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登录网络教学中心刷评论的更多相关文章

  1. 用cookie登录慕课网络教学中心刷评论

    声明:本文仅供学习参考 我们学校和的网络教学平台是在慕课网上的,需要登录到慕课网的教学平台以后,拿到cookie 注意:没次提交后需要休眠,否则刷评论过快会被系统发现 如果请求太快,很容易被系统发现( ...

  2. python爬虫-使用cookie登录

    前言: 什么是cookie? Cookie,指某些网站为了辨别用户身份.进行session跟踪而储存在用户本地终端上的数据(通常经过加密). 比如说有些网站需要登录后才能访问某个页面,在登录之前,你想 ...

  3. python爬虫+使用cookie登录豆瓣

    2017-10-09 19:06:22 版权声明:本文为博主原创文章,未经博主允许不得转载. 前言: 先获得cookie,然后自动登录豆瓣和新浪微博 系统环境: 64位win10系统,同时装pytho ...

  4. Python爬虫之模拟登录微信wechat

    不知何时,微信已经成为我们不可缺少的一部分了,我们的社交圈.关注的新闻或是公众号.还有个人信息或是隐私都被绑定在了一起.既然它这么重要,如果我们可以利用爬虫模拟登录,是不是就意味着我们可以获取这些信息 ...

  5. Python爬虫-百度模拟登录(二)

    上一篇-Python爬虫-百度模拟登录(一) 接上一篇的继续 参数 codestring codestring jxG9506c1811b44e2fd0220153643013f7e6b1898075 ...

  6. js利用cookie登录网站

    如上图,我们获取到了cookie,接下来利用cookie登录相应的网站. 我用的浏览器是火狐,首先在特定的网站(也就是我们发现XSS漏洞的网站,这里指的是pikachu)F12打开开发者工具,找到控制 ...

  7. 1.python+selenium利用cookie,跳过验证码直接登录

    方法1 在登录时,叫代码等待一段时间,然后手动输入验证码 # coding:utf-8 from selenium import webdriver import time url = 'http:/ ...

  8. 【Python爬虫】01:网络爬虫--规则

    Python网络爬虫与信息提取 目标:掌握定向网络数据爬取和网页解析的基本能力. the website is the API 课程分为以下部分: 1.requsets库(自动爬取HTML页面.自动网 ...

  9. Python爬虫之Cookie和Session

    关于cookie和session估计很多程序员面试的时候都会被问到,这两个概念在写web以及爬虫中都会涉及,并且两者可能很多人直接回答也不好说的特别清楚,所以整理这样一篇文章,也帮助自己加深理解 什么 ...

随机推荐

  1. 远程调用其它站点并设置cookie

    远程调用其它站点并设置cookie: 参考js var domainArray = [ {site:'g.com',action:'/b.do?c' } ,{site:'www.baidu.com', ...

  2. 如果导入的项目只有源码,可以将其他项目中的.classpath 和 .project复制到根目录下即可。

    如果导入的项目只有源码,没有对应的项目配置如web项目,可以将其他项目中的.classpath 和 .project复制到根目录下即可.

  3. Maven转化为Dynamic Web Module

    如今Maven仍然是最常用的项目管理工具,若要将Java Web项目使用Maven进行管理,则首先需要新建Maven项目,然后将其转化为web项目. 在项目右键选择properties,然后点击左侧P ...

  4. [leetcode-526-Beautiful Arrangement]

    Suppose you have N integers from 1 to N. We define a beautiful arrangement as an array that is const ...

  5. 【LeetCode】125. Valid Palindrome

    题目: Given a string, determine if it is a palindrome, considering only alphanumeric characters and ig ...

  6. 记一次Nginx的配置

    记第一次Nginx的配置 Nginx 首先了解到Nginx是干什么的?它有哪些作用?比较常用到的基础功能有反向代理.负载均衡.正向代理.http服务器.这次部署用到的就是反向代理. 反向代理就是指在目 ...

  7. Linux进程/内核模型

    内核必须实现一组服务和相应的接口,应用程序则可以使用这些接口,而不是直接与硬件打交道. Linux内核主要由以下5个子系统组成:进程调度.内存管理.虚拟文件系统.进程间通信以及设备驱动. 在这个组成中 ...

  8. 基于Metronic的Bootstrap开发框架经验总结(15)-- 更新使用Metronic 4.75版本

    在基于Metronic的Bootstrap开发框架中,一直都希望整合较新.较好的前端技术,结合MVC的后端技术进行项目的开发,随着时间的推移,目前Metronic也更新到了4.75版本,因此着手对这个 ...

  9. Microsoft office2010页码设置----论文、课程设计报告格式

    思想:将目录页(含目录页)与目录页以下的页面用分隔符分隔开,单独设置目录页以下的页面页码,删除目录页(含目录)以前的页码. 1.在目录页页面内容最下面一行插入分隔符,实现与下面页面分隔开的目的. 页面 ...

  10. JavaScript一个google地图获取

    <script type="text/javascript"> /** * 返回一个新创建的<img>元素,该元素用于在获取到地理位置信息后,显示一张Goo ...