极客学院单线程爬虫py3.x版本
极客学院单线程爬虫实战篇,老师是用的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版本相关推荐
- python极客学院爬虫_学习极客学院多线程爬虫课程的收获
昨天开始了极客学院<XPath与多线程爬虫>课程的学习,主要涉及到XPath和requests的使用,在测试过程中出现了很多问题,经过不断摸索以及前辈们的帮助,现将经验总结如下: 1. P ...
- python极客学院爬虫_基于requests实现极客学院课程爬虫
#coding=utf-8 __author__ = 'scaleworld' importrequestsimportreimportsys reload(sys) sys.setdefaulten ...
- 极客时间和极客学院_极客在海滩
极客时间和极客学院 As reported by Jeremy, Andy and Jon, last weekend was a chance for that rare creature – th ...
- Python爬虫实战:极客学院
今天我们来爬取一下极客学院的课程,这次我们用requests和xpath,小伙伴们看好了,这真是一对神奇组合,棒棒哒! 爬取前我们先看一下我们的目标: 1.抓取极客学院的课程 2.抓取每一门课程的课程 ...
- python爬虫下载极客学院视频
这两天在极客学院看视频,感觉在网上看好不方便,所以写了个爬虫来下载视频. 具体思路是: 1.先登录极客学院 2.获取指定页面中的课程网址 3.获取每个课程中的视频的地址 4.下载视频 首先要访问这个网 ...
- Python简单网页爬虫——极客学院视频自动下载
一.需求背景 最近正好在研究Python,看了菜鸟教程上的基本教程,然后又再看极客学院的教学视频,向实战进军. 极客学院的视频是需要年费会员才能下载的,客户端倒是可以批量下载,但是下载之后,没有目录结 ...
- 极客学院职业路径图课程视频下载-爬虫
一.序言 最近看了极客学院的视频教程,相当不错,渴望把视频下载到本地.手动下载耗时耗力,因而决定研究一番,写一程序自动下载,终于小有成果!有图为证: 二.技术难点 既然要实现自动下载,免不了要爬取极客 ...
- 极客时间和极客学院_极客历史记录的本周:Twitter的诞生,OS X十周年以及太空停留时间最长的时代即将结束...
极客时间和极客学院 Every week we bring you interesting trivia and milestones from the archives of Geekdom. To ...
- 极客学院-Html5个人笔记总结
第一部分,HTML5基础 1,什么是HTML5? (Hyper Text Markup Language) 超文本标记语言,用于描述网页的一种语言. 2,HTML5相关知识? HTML XHT ...
最新文章
- 使用一个月Windows 8.1优缺点汇总
- PHP实现简单顺序栈
- ITK:直方图创建和Bin访问
- JAVA数组及数组的应用
- hertz接触理论_角接触轴承的组配和预紧技术及影响
- ASP.NET Forms权限验证
- Android使用ksoap2调用C#中的webservice实现图像上传
- 每周公布病情 - 北京18区县均有手足口病例
- JavaWeb学习思维导图
- 攻防世界 logmein(重温,重点在于怎么写出脚本)
- 卡内基梅隆大学计算机专业有哪些,卡内基梅隆大学计算机系统类大学排名最新资讯总结篇...
- word中去除页眉中的横线
- 严重: Servlet.service() for servlet [springmvc] in context with path [] threw exception [Request proce
- does not have write access to 'C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET File
- 《魔兽世界》营收出现大幅下滑
- 导航菜单背景切换效果
- 母婴用品品牌孩子王上市;奥雪文化完成数千万人民币A轮融资
- 文明-根达亚文明:根达亚文明
- 数据库-高级SQL语句
- python将json转csv代码示例