Python 爬虫学习2
2016-04-17 19:16
525 查看
这是我从极客学院网站上,学习如何爬取数据的一个实例
#coding=utf-8 # 爬取极客学院 课程名称 课程介绍 课程时间 课程等级 学习人数 # 目标网址 http://www.jikexueyuan.com/course/?pageNum=1 ## 实现代码如下: #-*_coding:utf8-*- import requests import re import sys reload(sys) sys.setdefaultencoding("utf-8") class spider(object): def __init__(self): print u'开始爬取内容。。。' #getsource用来获取网页源代码 def getsource(self,url): html = requests.get(url) return html.text #changepage用来生产不同页数的链接 def changepage(self,url,total_page): now_page = int(re.search('pageNum=(\d+)',url,re.S).group(1)) page_group = [] for i in range(now_page,total_page+1): link = re.sub('pageNum=\d+','pageNum=%s'%i,url,re.S) page_group.append(link) return page_group #geteveryclass用来抓取每个课程块的信息 def geteveryclass(self,source): everyclass = re.findall('(<li deg="".*?</li>)',source,re.S) return everyclass #getinfo用来从每个课程块中提取出我们需要的信息 def getinfo(self,eachclass): info = {} info['title'] = re.search('target="_blank">(.*?)</a>',eachclass,re.S).group(1) info['content'] = re.search('</h2><p>(.*?)</p>',eachclass,re.S).group(1) timeandlevel = re.findall('<em>(.*?)</em>',eachclass,re.S) info['classtime'] = timeandlevel[0] info['classlevel'] = timeandlevel[1] info['learnnum'] = re.search('"learn-number">(.*?)</em>',eachclass,re.S).group(1) return info #saveinfo用来保存结果到info.txt文件中 def saveinfo(self,classinfo): f = open('info.txt','a') for each in classinfo: f.writelines('title:' + each['title'] + '\n') f.writelines('content:' + each['content'] + '\n') f.writelines('classtime:' + each['classtime'] + '\n') f.writelines('classlevel:' + each['classlevel'] + '\n') f.writelines('learnnum:' + each['learnnum'] +'\n\n') f.close()
爬取的部分结果如下:
title:数据结构与算法之位运算content:本课程介绍位运算的相关知识。位运算相关的算法是面试中的高频题,我们会从基础开始详细介绍位运算的各方面知识,并对经典算法进行深入剖析,给出不同的解决方案。classtime:3课时54分钟classlevel:中级learnnum:2086人学习title:索引的基础操作content:本课程将介绍如何实现索引的增、删、改、查操作,并介绍如何指定查询操作中的排序方式,完成索引的基础操作。classtime:3课时27分钟classlevel:高级learnnum:2083人学习title:编程之美优秀选手孙祥彦经验分享content:本期嘉宾是2014编程之美挑战赛全国总冠军,来自复旦大学的孙祥彦同学。他将在本期分享课程中独家爆料 Code Hunt 平台使用方法论,教你用基本的方法巧妙地应对一些难题,同时他还将全面地展示他的决赛项目,最后还有对今年参赛同学的宝贵建议。classtime:1课时21分钟classlevel:初级learnnum:2209人学习
相关文章推荐
- python文件读写
- python之函数
- sklearn.pipeline.Pipeline类的用法
- Python第一章-基础知识
- python入门(五)
- python 按照cpu的使用率对top中的进程排序(排序表格)
- Python学习笔记2-flask-sqlalchemy 简单笔记
- python随机数计算并输出
- 我的第一次Python爬虫——获取自己博客园的所有文章
- 哈工大语言云(LTP)本地安装使用及Python调用
- Python浅拷贝和和深拷贝
- Python之我见
- python中的random模块学习
- Python调用哈工大语言云(LTP)API进行自然语言处理
- Python运算符
- python显示系统信息脚本
- CS231n - CNN for Visual Recognition Assignment1 ---- KNN
- Python处理错误三种方式
- Python中的字典(dict)
- <Python><Ubuntu>安装geopandas