本站源码全部测试通过,配有前台及后台演示图,绿色安全,希望能对大家有所帮助!
  • 收藏本站
  • 网站地图
  • 发布源码
  • 首 页
  • VPS/云主机
  • 交流论坛
  • 用Python爬虫获取自己感兴趣的博客文章
    时间:2019-02-18 07:45:28来源:模板之家 作者:转载大师 下载:1901 次
    CDA数据分析师 CDA数据分析师

    作者  CDA数据分析师


    在CSDN上有很多精彩的技术博客文章,我们可以把它爬取下来,保存在本地磁盘,可以很方便以后阅读和学习,现在我们就用python编写一段爬虫代码,来实现这个目的。


    我们想要做的事情:自动读取博客文章,记录标题,把心仪的文章保存到个人电脑硬盘里供以后学习参考。


    过程大体分为以下几步:


    • 1. 找到爬取的目标网址;

    • 2. 分析网页,找到自已想要保存的信息,这里我们主要保存是博客的文章内容;

    • 3. 清洗整理爬取下来的信息,保存在本地磁盘。


    打开csdn的网页,作为一个示例,我们随机打开一个网页:

    http://blog.csdn.net/u013088062/article/list/1。


    可以看到,博主对《C++卷积神经网络》和其它有关机计算机方面的文章都写得不错。

     


    爬虫代码按思路分为三个类(class),下面3个带“#”的分别给出了每一个类的开头(具体代码附后,供大家实际运行实现):

     


    采用“类(class)”的方式属于Python的面向对象编程,在某些时候比我们通常使用的面向过程的编程方便,在大型工程中经常使用面向对象编程。对于初学者来说,面向对象编程不易掌握,但是经过学习习惯之后,会逐步慢慢从面向过程到面向对象编程过渡。


    特别注意的是,RePage类主要用正则表达式处理从网页中获取的信息,正则表达式设置字符串样式如下:


     

    用正则表达式去匹配所要爬取的内容,用Python和其它软件工具都可以实现。正则表达式有许多规则,各个软件使用起来大同小异。用好正则表达式是爬虫和文本挖掘的一个重要内容。


    SaveText类则是把信息保存在本地,效果如下:

     

     

    用python编写爬虫代码,简洁高效。这篇文章仅从爬虫最基本的用法做了讲解,有兴趣的朋友可以下载代码看看,希望大家从中有收获。

     

    附相关Python代码:


     1#-*-coding:UTF-8-*-
    2import re
    3import urllib2
    4import sys
    5#目的:读取博客文章,记录标题,用Htnl格式保存存文章内容
    6#版本:python2.7.13
    7#功能:读取网页内容
    8class GetHtmlPage():
    9        #注意大小写
    10        def __init__(self,strPage):
    11            self.strPapge = strPage
    12        #获取网页
    13        def GetPage(self):
    14                req = urllib2.Request(self.strPapge)            # 建立页面请求
    15                rep = req.add_header("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 SE 2.X MetaSr 1.0")
    16                try:
    17                   cn = urllib2.urlopen(req)                    #网页请求
    18                   page = cn.read()                          #读网页
    19                   uPage = page.decode("utf-8")               #网页编码
    20                   cn.close()
    21                   return uPage
    22                except urllib2.URLError, e:                     #捕获异常
    23                        print URLError:, e.code
    24                        return
    25                except urllib2.HTTPError, e:                     #捕获异常
    26                        print HTTP Error: + e.reason
    27                        return
    28                return rePage
    29#正则表达式,获取想要的内容
    30class RePage():
    31#正则表达式提取内容,返回链表
    32    def GetReText(self,page,recode):
    33        rePage = re.findall(recode,page,re.S)
    34        return rePage
    35#保存文本
    36class SaveText():
    37    def Save(self,text,tilte):
    38        try:
    39            t="blog\"+tilte+".html"
    40            f = file(t,"a")
    41            f.write(text)
    42            f.close()
    43        except IOError,e:
    44            print e.message
    45if __name__ == "__main__":
    46    s = SaveText()
    47    #文件编码
    48    #字符正确解码
    49    reload(sys)
    50    sys.setdefaultencoding( "utf-8" ) #获得系统的默认编码
    51    #获取网页
    52    page = GetHtmlPage("http://blog.csdn.net/u013088062/article/list/1")
    53    htmlPage = page.GetPage()
    54    #提取内容
    55    reServer = RePage()
    56    reBlog = reServer.GetReText(htmlPage,r<span class="link_title"><a href="(.+?)">.*?(s.+?)</a></span>)   #获取网址链接和标题
    57    #再向下获取正文
    58    for ref in reBlog:
    59        pageHeard = "http://blog.csdn.net/"         #加链接头
    60        strPage = pageHeard+ref[0]
    61        tilte=ref[1].replace(<font color="red">[置顶]</font>, "")     #用替换的功能去除杂的英文
    62        tilte=tilte.replace(" ","").lstrip().rstrip()
    63        #获取正文
    64        htmlPage = GetHtmlPage(strPage)
    65        htmlPageData = htmlPage.GetPage()
    66        reBlogText = reServer.GetReText(htmlPageData,<div id="article_content" class="article_content">(.+?)</div>)
    67    #保存文件
    68        for s1 in reBlogText:
    69            s1=<meta charset="UTF-8"> +s1
    70            s.Save(s1,tilte)

     

    根据上期学员的反馈和优化,接下来覃老师主讲Python数据挖掘课程变成4天,跟着覃老师一起领悟数据挖掘算法在行业应用。强化的培训,应该让你可以学完后很自信,学以致用,快速上手解决工作中的问题。


    4天课程内容足够丰富,想学习的朋友报名从速,点击阅读原文,查看课程详情,缴费后获得预习视频和资料。(点击阅读原文报名)


    在线咨询:

    张老师

    座机:010-68456523

    QQ:2931495854

    扫码添加微信

     

    往期精彩

    区块链技术中的智能合约究竟是怎么一回事?

    找一份数据分析工作,是不是真的很困难?

    Stack Overflow发布2018年度开发者调查报告,从中我们发现…

    作为一个区块链技术人员,我为什么只做技术不炒币?

    快速了解区块链背后的三项基本技术

    关于 AI 丨不知道这些概念你就落伍了

    十分钟带你看懂比特币背后的原理

    为什么你学完了68个Python函数,却依旧做不好数据分析?

    区块链将影响的19个行业

    Python 爬取淘宝商品数据挖掘分析实战

    数据科学职业生涯路径:如何在数据分析工作中找准自己的角色和定位?

      阅读原文

      发送中

      阅读原文
      转载请注明来源: 用Python爬虫获取自己感兴趣的博客文章
      本文永久链接地址:bencandy.php?fid=32&id=5454
      本文标签:

      版权声明:
      —— 本文内容由互联网用户自发贡献, 本站不拥有所有权, 不承担相关法律责任, 如果发现本站有涉嫌抄袭的内容, 欢迎发送邮件至 :
      —— 1034252225@qq.com 举报, 并提供相关证据, 一经查实, 本站将立刻删除涉嫌侵权内容。

      最新《系统天堂》软件下载站门户整站程序源码 带WAP手机端+全最新《系统天堂》软件下载站门户整站程序源码 带WAP手机端+全
      福娃源码交易平台,VIP会员,友价T5内核,可运营版本福娃源码交易平台,VIP会员,友价T5内核,可运营版本
      最新仿酷趣商业源码交易平台完整源码,带任务平台功能,新闻栏最新仿酷趣商业源码交易平台完整源码,带任务平台功能,新闻栏
      推荐资讯

      开源之家:最新微信收银系统程序(刷卡支付、卡券核销、扫码支付

      开源之家:最新微信收银系统程序(刷卡支付、卡券核销、扫码支付微信源码3415

      最新微信全民经纪人系统V3.0完整商业版

      最新微信全民经纪人系统V3.0完整商业版微信源码3415

      星火草原微信三级分销系统云指分销商城完美修复版二次开发源码

      星火草原微信三级分销系统云指分销商城完美修复版二次开发源码微信源码3415

      最新牛NIUCMS本地O2O系统V3.0商业版源码二次开发版微信完美三

      最新牛NIUCMS本地O2O系统V3.0商业版源码二次开发版微信完美三微信源码3415

      最新销客多V3.5三级分销系统二次开发版修复物流公司BUG支持佣

      最新销客多V3.5三级分销系统二次开发版修复物流公司BUG支持佣微信源码3415
      开源之家广告栏目A
      热点资讯

      最新《系统天堂》软件下载站门户整站程序源码 带WAP手机端+全

      最新《系统天堂》软件下载站门户整站程序源码 带WAP手机端+全下载系统6481

      福娃源码交易平台,VIP会员,友价T5内核,可运营版本

      福娃源码交易平台,VIP会员,友价T5内核,可运营版本下载系统6481

      最新仿酷趣商业源码交易平台完整源码,带任务平台功能,新闻栏

      最新仿酷趣商业源码交易平台完整源码,带任务平台功能,新闻栏下载系统6481

      mobanbox素材网源码,素材图片站系统,类似千图网源码,高端响应

      mobanbox素材网源码,素材图片站系统,类似千图网源码,高端响应下载系统6481

      2017年10.20更新友价T5源码素材交易网站源码|虚拟物品交易商城

      2017年10.20更新友价T5源码素材交易网站源码|虚拟物品交易商城下载系统6481
      开源之家广告栏目B
      开源之家广告栏目C