[python 爬虫]第一个Python爬虫,爬取某个新浪博客所有文章并保存为doc文档

最近开始学习Python的爬虫,本来想着从基本的各种语法开始学习的但是在逛知乎的过程中发现了一个帖子是就是关于如何入门Python爬虫,里面有一个回答,https://www.zhihu.com/question/20899988/answer/24923424 这里面说的就是““入门”是良好的动机,但是可能作用缓慢。如果你手里或者脑子里有一个项目,那么实践起来你会被目标驱动,而不会像学习模块一样慢慢学习”,所以我决定了不从基础模块一个一个慢慢学习,直接从Python爬虫的一个一个小程序学习,若有不懂的地方就往前面基础部分翻。我慢慢发现其实很多内容都是相互联系的,而且在学习基础部分的时候不会在意这个东西究竟有什么作用而只是知道有这个一个东西存在。但是如果是自己实践起来,就能更深刻理解。

话不多说,我第一个爬虫程序参考了很多资料,目标是把一个人的新浪博客里的所有文章都保存下来。网络上面有教育机构的视频也是这么说的,但是我看了视频之后才发现视频的标题只是一个噱头,只是保存了博客所有文章的html网址在一个文件夹,而我希望是可编辑的文本格式。然而这本来就是难度等级不同的(起码对于刚接触Python语言的我而言)所以我决定自己参考资料写一个。

我以韩寒博客为例子。

思路是首先成功抓取一篇文章的内容(包括标题和正文内容),然后是抓取博客目录第一页一整页的文章,这里涉及一个问题是要先获得每篇文章的url然后再抓取文章,最后是观察不同页码的博客目录,找出共同点写一个函数对每一页都进行抓取,最后就大功告成。

    def getText(self,url):
         text=urlopen(url).read().decode('utf-8')
         start=text.find(u"<!-- 正文开始 -->")
         print start
         end=text.find(u"<!-- 正文结束 -->")
         print end
         text=text[start:end]
         text = re.sub(re.compile('<p.*?>'),"\n    ",text)
         text = re.sub(re.compile('<p>'),"\n    ",text)
         text=re.sub(r'<(S*?)[^>]*>.*?|<.*? /> ','',text)
         text=re.sub(r'&[^>]*?\;',' ',text)
         return text.encode('utf-8')

这个函数就是获取一篇文章的内容

 

 

def getUrl(self,page):
        pattern =re.compile('<span class="atc_title">.*?<a.*?href="(.*?)">.*?</a>.*?</span>',re.S)
        items = re.findall(pattern,page)
        urls = []
        for item in items:
  • 7
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值