首页 > 编程知识 正文

简单的python爬虫代码,python 简单爬虫

时间:2023-05-04 06:46:53 阅读:271575 作者:4167

##python爬取慕课网首页课程标题与内容介绍
效果图:

思路:
获取页面内容存入html -->
利用正则表达式获取所有课程块的div盒子存入everydiv -->
在每个课程块中抓取标题与介绍存入列表classinfo -->
将列表存入info.txt文件中 -->
最后检查抓取到的内容

知识点:

re 模块(Regular Expression 正则表达式)提供各种正则表达式的匹配操作,适合文本解析、复杂字符串分析和信息提取时使用Requests ,基于 urllib,但比 urllib 更加方便。 自动的把返回信息有Unicode解码,且自动保存返回内容,所以你可以读取多次sys模块包括了一组非常实用的服务,内含很多函数方法和变量,用来处理Python运行时配置以及资源,从而可以与前当程序之外的系统环境交互

python源代码 即粘即用

#-*_coding:utf8-*-import requestsimport reimport sysreload(sys)sys.setdefaultencoding("utf-8")class func(object): def __init__(self): print u'开始爬取内容。。。'#getsource获取网页源代码 def getsource(self,url): html = requests.get(url) #print str(html.text) 可以在此打印,来检查是否抓到内容 return html.text#geteverydiv抓取每个课程块的信息 def geteverydiv(self,source): everydiv = re.findall('(<div class="moco-course-wrap".*?</div>)',source,re.S) return everydiv#getinfo从每个课程块中提取出课程标题和内容描述 def getinfo(self,eachclass): info = {} info['title'] = re.search('<h3>(.*?)</h3>',eachclass,re.S).group(1) info['content'] = re.search('<p>(.*?)</p>',eachclass,re.S).group(1) #print info 可以在此打印,来检查是否抓到内容 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'] + 'nn') f.close() print "write file finished" #主函数if __name__ == '__main__': classinfo = [] url = 'http://www.imooc.com/' testspider = func() print u'正在处理页面:' + url html = testspider.getsource(url) everydiv = testspider.geteverydiv(html) for each in everydiv: info = testspider.getinfo(each) classinfo.append(info) testspider.saveinfo(classinfo)

如果您有什么意见或建议,欢迎留言…….

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。