近日,在浏览伯乐在线(http://blog.jobbole.com/29281/)的时候碰到一些很不错的资源:25本免费的Python电子书

如下图:

其中,每本都是以名字+超链接的方式,于是激起了我写个小程序保存这些资源的欲望,顺便也能练习一些不太熟练的小爬虫 : ) 。 好了,我们开始吧!

先展示一下成果给大家看嗯: 如图

每本书都很有条理的保存在本地文档中,结果还是挺满意的哈。

首先呢 要完成这些工作大概要分为一下几个步骤:

1. 获得整个页面的源代码 (网页源码HTML)

2. 获得目标区域的源代码 (缩小范围)

3. 在小范围内匹配资源的URL

4. 将匹配到的资源URL写入到本地保存

下面,将分为4个步骤来分部展示Python程序

第一,获得整个页面的源代码:

1 defgetHtml(url):2 html =urllib.urlopen(url)3 sorce =html.read()4 return sorce

该段代码将返回资源所在的整个页面的HTML源代码

第二,获得目标区域的源代码 (缩小范围):

1 defgetRange(content):2 start0 = content.find(r'

')3 start = content.find(r'

  1. ',start0)4 end = content.find(r'
',start)5 content2 =content[start:end]6 return content2

第三,匹配资源的URL:

1 defgetLink(content2):2 reg = re.compile(r'(.*?)')8 result2 =reg.findall(content2)9 return result2

以上俩个函数分别用来匹配资源的 链接 和 书名

第四,保存到本体:

即是在print 的基础上从定向到文件中。详见下面的完整代码 : )

下面是完整代码:

1 #!/usr/bin/env python

2 #coding:utf-8

3

4 importurllib5 importre6

7 defgetHtml(url):8 html =urllib.urlopen(url)9 sorce =html.read()10 returnsorce11

12 defgetRange(content):13 start0 = content.find(r'

')14 start = content.find(r'

  1. ',start0)15 end = content.find(r'
',start)16 content2 =content[start:end]17 returncontent218

19 defgetLink(content2):20 reg = re.compile(r'(.*?)')26 result2 =reg.findall(content2)27 returnresult228

29 if __name__ == '__main__':30 content = getHtml(r'http://blog.jobbole.com/29281/')31 content2 =getRange(content)32 link =getLink(content2)33 name =getName(content2)34 i = 1

35 f = open('content.txt','w+')36 for x, y inzip(name, link):37 print >>f, str(i),":",x,38 print >>f39 print >>f,y40 i = i + 1

看到这里您辛苦了,谢谢 : )

—————————————————————————————————————————————————————————————————————————————

声明:

本文为 大Yi巴狼 对自己所学的知识整理和实现。

本文档欢迎自由转载,但请务必保持本文档完整或注明来之本文档。本文档未经 大Yi巴狼 同意,不得用于商业用途。最后,如果您能从这个简单文档里获得些许帮助,大Yi巴狼 将对自己的一点努力感到非常高兴;由于作者本人水平有限,如果本文档中包含的错误给您造成了不便,在此提前说声抱歉。

祝身体健康,工作顺利。

python爬虫成果_Python爬虫(小练习)相关推荐

  1. python官网学习爬虫资料_Python爬虫学习?

    1 爬虫是互联网上最常见的一种东西了吧. 爬虫这东西每天都在网上爬大量的信息,各大搜索引擎厂商每天都有上百万的爬虫在网络上活动,这些爬虫的作用就是给搜索引擎采集互联网上最新的内容,采集来的内容经过分类 ...

  2. python爬虫难点_Python爬虫技巧

    ​在本文中,我们将分析几个真实网站,来看看我们在<用Python写网络爬虫(第2版)>中学过的这些技巧是如何应用的.首先我们使用Google演示一个真实的搜索表单,然后是依赖JavaScr ...

  3. python简单爬虫手机号_Python爬虫:大家用公共的手机号干了啥?

    说明:本文所提供的思路和代码都只用于个人测试研究之用,并未对目标网站造成实质性干扰,而且全部细节已经全部告知网站开发者,也请大家不要用于恶意用途. 在我的微信公众号"免费的临时手机号,用这些 ...

  4. 花一千多学python值吗_Python爬虫应该怎么学?程序猿花了一周整理的学习技巧,请收下...

    原标题:Python爬虫应该怎么学?程序猿花了一周整理的学习技巧,请收下 Python爬虫为什么受欢迎 如果你仔细观察,就不难发现,懂爬虫.学习爬虫的人越来越多,一方面,互联网可以获取的数据越来越多, ...

  5. python流行的爬虫框架_Python爬虫相关框架

    Python爬虫相关框架,Python的爬虫框架就是一些爬虫项目的半成品.比如我们可以将一些常见爬虫功能的实现代码写好,然后留下一些接口,在做不同的爬虫项目时,我们只需要根据实际情况,只需要写少量需要 ...

  6. python数据入库_python爬虫(中)--数据建模与保存(入库)

    前言 前面,讲的是提取出来的数据保存进一个extracted_data,再保存进extracted_data_,变成一个list包含list的情况,当然你只提取一项,那就没有必要这么做了,可是我的项目 ...

  7. python电影爬虫背景介绍_python爬虫-爬虫电影八佰词云

    #数据获取 importrequestsimportreimportcsvimportjiebaimportwordcloud#通过循环实现多页爬虫#观察页面链接规律#https://movie.do ...

  8. python爬虫代理服务器_Python爬虫之服务器:代理IP万能

    最近很多同学租服务器用来学习爬虫,对于大部分小白来说,爬虫非常复杂.技术门槛很高.但我们可以通过爬虫获取大量的价值数据,经分析可以发挥巨大的价值,比如:豆瓣.知乎,爬取优质答案,筛选出各话题下热门内容 ...

  9. python爬虫要点_Python爬虫知识点梳理

    学任何一门技术,都应该带着目标去学习,目标就像一座灯塔,指引你前进,很多人学着学着就学放弃了,很大部分原因是没有明确目标,所以,在你准备学爬虫前,先问问自己为什么要学习爬虫.有些人是为了一份工作,有些 ...

最新文章

  1. 位操作-按位与之如何求二进制数的1个数
  2. CentOS 7系统安装配置图文详解
  3. vim C plugins
  4. 10种常用降维算法源代码(python)
  5. 【PostgreSQL+PostGIS离线安装】2天的踩坑及问题解决经验分享(含安装文件postgresql-9.5.9+postgis-2.2.3+多个依赖及测试SQL)
  6. Mongodb 分片与副本集
  7. php email 发送,php 发送 Email
  8. 判断String为空 StringUtils工具 isNotEmpty与isNotBlank区别
  9. 【kafka】kafka 消费组 加入 离开 reblance 案例
  10. D3 Handling Events
  11. SpringMVC中接收数据和返回数据
  12. 关于JS !!flag 语法
  13. SQL Server 2005全文检索技术
  14. python-pygame安装教程
  15. 参考文献标引方式_论文中参考文献标注方法有哪些?
  16. apiCloud实现微信分享功能
  17. Chatty登录测试
  18. 量子计算 4 超光速信息传播?密度矩阵与混合态
  19. 【第67期】2021上半年朋友圈都在传的10本书都在这了
  20. 【Linux 从入门到精通】第一篇 常见指令及初识权限

热门文章

  1. 你还不知道 Eureka 和 zookeeper 的区别吗?
  2. 重新精读《Java 编程思想》系列之向上转型与向下转型
  3. python counter函数定义_分享几个自己常用的Python高级函数
  4. openssh无法登录:server responded algorithm negotiation failed”
  5. sonarqube下安装mysql数据库_本地安装SonarQube之一——win7环境安装mysql
  6. mac u盘文件过大 拷贝不进去_使用mac时文件太大无法拷贝怎么办
  7. java 对象的属性_java-更新对象属性
  8. python安装包_Python开发环境搭建
  9. 初识python教学反思_[python第一课]初识python
  10. c语言中void delay0.5(),单片机彩灯是怎样点亮