极客学院单线程爬虫实战篇,老师是用的py2.x版本,而我是3.5版本,因此有一些在解码上的不同。
因此,比照老师的代码写了一遍,放在这里。


#tips:
貌似py3.x在file操作上没有writelines(或许有,我没看到?)但是有readline(字符型)或者readlines(列表型),识别文档的每一行的准测,就是查找’\n’.


# -*- coding: utf-8 -*-
"""
Created on Fri May 13 2016@author: s
"""
import requests
import reclass spider(object):def __init__(self):print('Start...')#每页的html    def get_html(self, url):header = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.94 Safari/537.36'}html = requests.get(url, headers=header)return html.text#总页码的url    def get_pages_url(self, url, total_page_nums):now_page_num = int(re.search('pageNum=(\d+)', url, re.S).group(1))page_link_group = []for i in range(now_page_num, total_page_nums+1):page_link = re.sub('pageNum=\d+', 'pageNum=%d'%i, url, re.S)page_link_group.append(page_link)return page_link_group#每门课的html      def get_class(self, page_html):each_class_html = re.findall('<li i(.*?)</li>', page_html, re.S)return each_class_html#每门课的资料    #each_class_html every_class_resourcedef get_info(self, eachclass):#eachclass 是each_link_groupinfo = {}info['title'] = re.search('title="(.*?)"', eachclass, re.S).group(1)info['content'] = re.search(' display: none;">(.*?)</p>', eachclass, re.S).group(1)time_and_level = re.findall('<em>(.*?)</em>', eachclass, re.S)        info['classtime'] = time_and_level[0]info['classlevel'] = time_and_level[1]info['learnnum'] = re.search('"learn-number">(.*?)</em>', eachclass, re.S).group(1)return infodef save_info(self, classinfo):f = open('E:\pyProject\jikexueyuan_code\practise\JK_course_list2.txt', 'wb')for each in classinfo:f.write('titles: {}\n'.format(each['title']).encode())f.write('content: {}\n'.format(str(each['content']).strip()).encode())f.write('classtime: {}\n'.format(''.join(str(each['classtime']).split())).encode())f.write('classlevel: {}\n'.format(''.join(each['classlevel'].split())).encode())f.write('learnnum: {}\n'.format(each['learnnum']).encode())f.close()#自运行
if __name__ == '__main__':    testspider = spider()url = 'http://www.jikexueyuan.com/course/?pageNum=1'page_html = testspider.get_pages_url(url, 1)classinfo = []for link in page_html:print('ing...' + link)html = testspider.get_html(link)eachclass = testspider.get_class(html)for each in eachclass:info = testspider.get_info(each)classinfo.append(info)testspider.save_info(classinfo)#print(classinfo)

极客学院单线程爬虫py3.x版本相关推荐

  1. python极客学院爬虫_学习极客学院多线程爬虫课程的收获

    昨天开始了极客学院<XPath与多线程爬虫>课程的学习,主要涉及到XPath和requests的使用,在测试过程中出现了很多问题,经过不断摸索以及前辈们的帮助,现将经验总结如下: 1. P ...

  2. python极客学院爬虫_基于requests实现极客学院课程爬虫

    #coding=utf-8 __author__ = 'scaleworld' importrequestsimportreimportsys reload(sys) sys.setdefaulten ...

  3. 极客时间和极客学院_极客在海滩

    极客时间和极客学院 As reported by Jeremy, Andy and Jon, last weekend was a chance for that rare creature – th ...

  4. Python爬虫实战:极客学院

    今天我们来爬取一下极客学院的课程,这次我们用requests和xpath,小伙伴们看好了,这真是一对神奇组合,棒棒哒! 爬取前我们先看一下我们的目标: 1.抓取极客学院的课程 2.抓取每一门课程的课程 ...

  5. python爬虫下载极客学院视频

    这两天在极客学院看视频,感觉在网上看好不方便,所以写了个爬虫来下载视频. 具体思路是: 1.先登录极客学院 2.获取指定页面中的课程网址 3.获取每个课程中的视频的地址 4.下载视频 首先要访问这个网 ...

  6. Python简单网页爬虫——极客学院视频自动下载

    一.需求背景 最近正好在研究Python,看了菜鸟教程上的基本教程,然后又再看极客学院的教学视频,向实战进军. 极客学院的视频是需要年费会员才能下载的,客户端倒是可以批量下载,但是下载之后,没有目录结 ...

  7. 极客学院职业路径图课程视频下载-爬虫

    一.序言 最近看了极客学院的视频教程,相当不错,渴望把视频下载到本地.手动下载耗时耗力,因而决定研究一番,写一程序自动下载,终于小有成果!有图为证: 二.技术难点 既然要实现自动下载,免不了要爬取极客 ...

  8. 极客时间和极客学院_极客历史记录的本周:Twitter的诞生,OS X十周年以及太空停留时间最长的时代即将结束...

    极客时间和极客学院 Every week we bring you interesting trivia and milestones from the archives of Geekdom. To ...

  9. 极客学院-Html5个人笔记总结

    第一部分,HTML5基础 1,什么是HTML5?  (Hyper Text Markup Language) 超文本标记语言,用于描述网页的一种语言.  2,HTML5相关知识?  HTML  XHT ...

最新文章

  1. 使用一个月Windows 8.1优缺点汇总
  2. PHP实现简单顺序栈
  3. ITK:直方图创建和Bin访问
  4. JAVA数组及数组的应用
  5. hertz接触理论_角接触轴承的组配和预紧技术及影响
  6. ASP.NET Forms权限验证
  7. Android使用ksoap2调用C#中的webservice实现图像上传
  8. 每周公布病情 - 北京18区县均有手足口病例
  9. JavaWeb学习思维导图
  10. 攻防世界 logmein(重温,重点在于怎么写出脚本)
  11. 卡内基梅隆大学计算机专业有哪些,卡内基梅隆大学计算机系统类大学排名最新资讯总结篇...
  12. word中去除页眉中的横线
  13. 严重: Servlet.service() for servlet [springmvc] in context with path [] threw exception [Request proce
  14. does not have write access to 'C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET File
  15. 《魔兽世界》营收出现大幅下滑
  16. 导航菜单背景切换效果
  17. 母婴用品品牌孩子王上市;奥雪文化完成数千万人民币A轮融资
  18. 文明-根达亚文明:根达亚文明
  19. 数据库-高级SQL语句
  20. python将json转csv代码示例

热门文章

  1. Siemens西门子plc控制器远程维护上下载 (S7-1200/1500、S7-300、S7-400)
  2. 研究人员发现西门子工业控制器中的命令执行漏洞
  3. paramiko模块的使用
  4. 广州库洛科技有限公司-校招-游戏服务端开发岗位笔试
  5. 项目管理中各种英文简称
  6. ubuntu18.04设置超级用户密码
  7. DevOps Master课程总结:知否知否,应是DevOps肥ITIL瘦
  8. 网工的忠告:考过CCIE意味着什么?
  9. 免费和收费都只是形式 网文阅读最终还是比生态?
  10. 怎样屏蔽微信朋友圈视频?局域网如何禁止员工看朋友圈视频?