python简单爬虫代码,python入门

python爬取慕课网首页课程标题与内容介绍

效果图:
《python简单爬虫代码,python入门》
思路:
获取页面内容存入html –>
利用正则表达式获取所有课程块的div盒子存入everydiv –>
在每个课程块中抓取标题与介绍存入列表classinfo –>
将列表存入info.txt文件中 –>
最后检查抓取到的内容

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

python源代码 即粘即用

#-*_coding:utf8-*-
import requests
import re
import sys
reload(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'] + '\n\n')
        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)

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

    原文作者:tangdou5682
    原文地址: https://blog.csdn.net/tangdou5682/article/details/52596863
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞