上次写了一个爬世纪佳缘的爬虫之后,今天再接再厉又写了一个新浪博客的爬虫。写完之后,我想了一会儿,要不要在博客园里面写个帖子记录一下,因为我觉得这份代码的含金量确实太低,有点炒冷饭的嫌疑,就是把上次的代码精简了一下,用在另外一个网站而已,而且爬别人的博客总有一种做贼心虚的感觉,怕被各位园友认为是偷窥狂魔。但是这份代码总归是我花了精力去写的,我也不想就此让它深藏在硬盘之中(电脑实在太老了,可能过两年硬盘坏了,这份代码就消失了),还是贴出来权当作抛砖引玉。

说起要爬新浪博客,总归是有一个原因吧。我的原因呢也是什么的简单,就是这两天在网上下载了一本python自然语言处理的一本书,就像尝试着应用一下里面的理论(其实我都还没看呢 哈哈),当然照着书里面的例子玩总归是没什么成就感的,所以就想自己找点东西实验一下。可能你觉得这个原因和爬新浪博客没什么必然联系啊,确实如此,前面扯的东西太虚了,我写这个东西就是为了满足一下自己的偷窥欲望,把曾经女神的博客都下载下来(大家不要喷。。),顺便在用前面讲的高大上的自然语言理论处理一下(估计很难,八成做不下去)。

讲了这么多废话了,现在开始说一说爬虫的工作原理。先原谅我粗糙的涂抹技术,因为实在不想把再出现上次帖子中的情况,大家纷纷在评论中讨论我在知乎看什么。首先在新浪播客找到你要下载用户的主页,在地址栏中最后一般有一个数字对应于用户的id,因为每页放的文章有限,新浪博客采用了分页,对应于url里面的page=2,就是第二页的意思。在当前的页面我们可以用正则表达式解析出文章的发表时间,“查看原文”的链接中找到文章的链接。

因为新浪博客比较开放的原因,不登陆也能查看文章那个的内容,所以就直接用python里的urllib2,也不需要设置cookies,省去了很多麻烦。唯一比较麻烦的是如果文章里面有图片是多媒体的链接,提取里面的文字比较麻烦和繁琐,因为这个界面比较简单,当然也可以直接解析html,不过我已经习惯了正则表达式,虽然很麻烦,但还是硬着头皮写完了。其中正则表达式的替换字符串的功能非常的好用,就重点讲一讲这个吧!

在遇到复杂的字符串替换的时候,正则表达式的sub函数用起来非常的easy。贴一段简单的代码:

#-*- encoding:UTF-8 -*-

import re

s = u'''

this is string1
这是字符串二

'''

def div_func(m):

if m is None:

return ''

return m.group(1)

if __name__ == '__main__':

pattern = re.compile(u'

(.*?)

', re.U | re.S | re.I)

print s

sss = pattern.sub(div_func, s)

print

print sss

在网页中,会碰到很多不同的格式,如代码里面的字符串s,如果想把里面的文字提取出来,对于比较复杂的替换要求,我们可以定义一个函数作为参数传给sub进行处理,运行的结果如下图所示,是不是非常的方便?

再讲讲python的中文编码问题吧,最简单的处理就是尽可能少的用str,尽可能多的用unicode。对于来自文件的输入数据,最好先解码为unicode再做处理,这样可以减少90%的乱码问题。哦,对了,今天还发现了一个非常好用的一个函数,可以用来下载文件

import urllib

urllib.urlretrieve(url, path)

此函数可以将url中的文件下载到本地路径path中,是不是非常的简单。最后展示一下。当然数据不多啦,女神也就一百多篇的文章,用数据库有点杀鸡用牛刀的感觉,直接输出到一个文本文件里面也是挺方便的哈!

最后的最后,还是把源代码贴出来以供大家参考哈!(由于本人实在不擅长描述细节,所以写的很粗,望大家多多见谅啊!)

python爬取新浪博客_python网络爬虫 新浪博客篇相关推荐

  1. python中data.find_all爬取网站为空列表_Python网络爬虫之Scrapy 框架-分布式【第二十九节】...

    1. 介绍scrapy-redis框架 scrapy-redis 一个三方的基于redis的分布式爬虫框架,配合scrapy使用,让爬虫具有了分布式爬取的功能. github地址: https://g ...

  2. python爬取百度新闻_火车浏览器网络爬虫实践6:以“陕茶”为例爬取百度新闻搜索结果...

    每天进步一点点,这是我2019年的小目标. 这是第6次学习与实践笔记了,这一次咱们把对象转移到百度搜索去,尝试使用火车浏览器爬虫工具来采集百度新闻搜索的结果,并做简单数据可视化展示. 01 抓取需求 ...

  3. python爬取腾讯视频弹幕_网络爬虫实战(四):爬取腾讯视频电视剧弹幕-Go语言中文社区...

    文章目录 实战背景 说到被翻拍最多的大概就是金庸先生的剧了,有华人的地方就会有金庸剧.而在他的多部小说中,翻拍次数最多的无疑就是<倚天屠龙记>了,而且次数已经高达十四次.最早的是1963香 ...

  4. python爬取新闻标题存入文本_Python视频爬虫实现下载头条视频功能示例

    本文实例讲述了Python视频爬虫实现下载头条视频功能.分享给大家供大家参考,具体如下: 一.需求分析 抓取头条短视频 思路: 分析网页源码,查找解析出视频资源url(查看源代码,搜mp4) 对该ur ...

  5. python爬取岗位数据并分析_Python年薪最高有50w|探秘全国近1600个Python岗位数据分析...

    原创 xinxin 菜鸟学Python 阅读本文大概需要3分钟 Python学了这么久,相信很多小伙伴都想知道钱途如何,全国各大城市招聘Python的岗位有多少,都招哪些职位,年薪如何等等,我爬取了拉 ...

  6. python爬取饿了么评论_python爬取饿了么的实例

    python爬取饿了么的实例 发布时间:2020-11-17 10:55:40 来源:亿速云 阅读:85 作者:小新 小编给大家分享一下python爬取饿了么的实例,相信大部分人都还不怎么了解,因此分 ...

  7. python爬取微博数据存入数据库_Python爬取新浪微博评论数据,写入csv文件中

    因为新浪微博网页版爬虫比较困难,故采取用手机网页端爬取的方式 操作步骤如下: 1. 网页版登陆新浪微博 2.打开m.weibo.cn 3.查找自己感兴趣的话题,获取对应的数据接口链接 4.获取cook ...

  8. python爬取新闻并归数据库_Python爬取数据并写入MySQL数据库操作示例

    Python爬取数据并写入MySQL数据库的实例 首先我们来爬取 http://html-color-codes.info/color-names/ 的一些数据. 按 F12 或 ctrl+u 审查元 ...

  9. python爬取网页书籍名称代码_python爬取亚马逊书籍信息代码分享

    我有个需求就是抓取一些简单的书籍信息存储到mysql数据库,例如,封面图片,书名,类型,作者,简历,出版社,语种. 我比较之后,决定在亚马逊来实现我的需求. 我分析网站后发现,亚马逊有个高级搜索的功能 ...

最新文章

  1. 求求你了,配个GC日志呗,不然咋分析故障原因
  2. LeetCode——Rotate Image(二维数组顺时针旋转90度)
  3. Android 多进程调试技巧
  4. 【Matlab开发】MATLAB编译C/C++代码
  5. 15道谷歌面试题及答案
  6. 【非凡程序员】 OC第十八节课 (数据库mysql和sqlite3)
  7. from mysql partition select_玩转select条件查询,避免踩坑
  8. B站,被扫黄了!B站变P站?
  9. 大专学历造假改成了 211 拿到了抖音 Offer
  10. WPF快速入门系列(9)——WPF任务管理工具实现
  11. tensorflow:卷积函数----tf.nn.conv2d
  12. 基于大数据技术之电视收视率企业项目实战(hadoop+Spark)
  13. 名帖41 伊秉绶 隶书《对联八幅》
  14. 西门子博途软件安装及使用
  15. 接口测试用例设计方法方式和流程一文到底
  16. POE交换机全方位解读(上)
  17. 苹果选了天猫 天猫成了618
  18. Respond 的响应式代码阅读
  19. 疫情冲击使中小微企业营收下降近七成,微型企业恢复更快
  20. SpringBoot整合Minio,一篇带你入门使用Minio

热门文章

  1. selenium+爬虫 实现百度搜索,返回相关查询结果
  2. 卡尔曼滤波中残差与新息的区别
  3. JAVA 数组专题(韩顺平)
  4. java死锁如何排查
  5. 开源:完全自主研发搜索引擎,单机400万网页全文索引,任意检索不超过 20毫秒
  6. 操作系统9道经典PV操作
  7. 老司机双十一厚礼之玩转 3D Swiper 性感秀之思路分析总结
  8. newScheduledThreadPool : scheduleAtFixedRate 与 scheduleWithFixedDelay 详解
  9. p2p双向传输300M的文件 开发心得(Python windows)
  10. ping 与 traceroute 的工作原理分析