Python 简单网页爬虫学习

 1 #coding=utf-8
 2
 3 # 参考文章:
 4 #   1. python实现简单爬虫功能
 5 #       http://www.cnblogs.com/fnng/p/3576154.html
 6 #   2. Python 2.7 时间和日期模块常用的例子
 7 #       http://www.linuxidc.com/Linux/2015-06/118458.htm
 8 #   3. Python open读写文件实现脚本
 9 #       http://www.jb51.net/article/15709.htm
10 #   4. python re 模块 findall 函数用法简述
11 #       http://blog.csdn.net/cashey1991/article/details/8875213
12 #   5. [Python]编码声明:是coding:utf-8还是coding=urf-8呢
13 #       http://www.xuebuyuan.com/975181.html
14
15
16 # urllib模块提供的上层接口,使我们可以像读取本地文件一样读取www和ftp上的数据。
17 import urllib
18 import re
19 import datetime,time
20
21 # 定义了一个getHtml()函数
22 def getHtml( url ):
23     # urllib.urlopen()方法用于打开一个URL地址。
24     page = urllib.urlopen( url )
25     # read()方法用于读取URL上的数据
26     html = page.read()
27
28     # 返回整个网页数据
29     return html
30
31 # 创建getImg()函数
32 def getImg( html ):
33     # ()表示所要提取的字符串,即: 图片名.jpg
34     reg = r'src="(.+?\.jpg)" pic_ext'
35     # 可以把正则表达式编译成一个正则表达式对象.
36     imgre = re.compile( reg )
37     # 读取html 中包含 imgre(正则表达式)的数据。
38     # 当给出的正则表达式中带有一个括号时,列表的元素为字符串,
39     # 此字符串的内容与括号中的正则表达式相对应(不是整个正则表达式的匹配内容)。
40     imglist = re.findall( imgre, html )
41
42     print "Start downloading the first five pictures"
43
44     # 通过一个for循环对获取的图片连接进行遍历,为了使图片的文件名看上去更规范,
45     # 对其进行重命名,命名规则通过x变量加1。保存的位置默认为程序的存放目录。
46     x = 0
47     for imgurl in imglist:
48         # 用到了urllib.urlretrieve()方法,直接将远程数据下载到本地
49         urllib.urlretrieve( imgurl, '%s.jpg' % x )
50         # python不支持类似 x++ 或 x-- 这样的前置/后置自增/自减运算符,因此只能用 += 或 -= 这种。
51         x += 1
52
53         # 这里面的图片可能比较多,我们测试前五张就差不多了
54         if x == 5 :
55             break
56
57     print "the first five pictures download completed."
58
59     return imglist
60
61 # 向getHtml()函数传递一个网址,并把整个页面下载下来,保存在html变量中
62 html = getHtml( "http://www.zengjf.org" )
63
64 # 合成要保存的文件名,由年月日、时分秒组成,以只写方式打开文件
65 saveFile = open( time.strftime( "%Y%m%d%H%M%S" ) + ".html", 'w' )
66 saveFile.write( html )      # 将html中的内容写入文件
67 saveFile.close( )           # 关闭文件
68
69 html = getHtml( "http://tieba.baidu.com/p/2460150866" )
70 print getImg( html )

 

时间: 2024-11-08 19:27:04

Python 简单网页爬虫学习的相关文章

python编写网页爬虫脚本并实现APScheduler调度_python

前段时间自学了python,作为新手就想着自己写个东西能练习一下,了解到python编写爬虫脚本非常方便,且最近又学习了MongoDB相关的知识,万事具备只欠东风. 程序的需求是这样的,爬虫爬的页面是京东的电子书网站页面,每天会更新一些免费的电子书,爬虫会把每天更新的免费的书名以第一时间通过邮件发给我,通知我去下载. 一.编写思路: 1.爬虫脚本获取当日免费书籍信息 2.把获取到的书籍信息与数据库中的已有信息作比较,如果书籍存在不做任何操作,书籍不存在,执行插入数据库的操作,把数据的信息存入Mo

Python爬虫——写出最简单的网页爬虫

最近对python爬虫有了强烈地兴趣,在此分享自己的学习路径,欢迎大家提出建议.我们相互交流,共同进步. 1.开发工具 笔者使用的工具是sublime text3,它的短小精悍(可能男人们都不喜欢这个词)使我十分着迷.推荐大家使用,当然如果你的电脑配置不错,pycharm可能更加适合你. sublime text3搭建python开发环境推荐查看此博客: [sublime搭建python开发环境][http://www.cnblogs.com/codefish/p/4806849.html] 2

Python 爬虫学习笔记之单线程爬虫_python

介绍 本篇文章主要介绍如何爬取麦子学院的课程信息(本爬虫仍是单线程爬虫),在开始介绍之前,先来看看结果示意图 怎么样,是不是已经跃跃欲试了?首先让我们打开麦子学院的网址,然后找到麦子学院的全部课程信息,像下面这样 这个时候进行翻页,观看网址的变化,首先,第一页的网址是 http://www.maiziedu.com/course/list/, 第二页变成了 http://www.maiziedu.com/course/list/all-all/0-2/, 第三页变成了 http://www.ma

使用Python编写简单网络爬虫抓取视频下载资源_python

我第一次接触爬虫这东西是在今年的5月份,当时写了一个博客搜索引擎,所用到的爬虫也挺智能的,起码比电影来了这个站用到的爬虫水平高多了! 回到用Python写爬虫的话题. Python一直是我主要使用的脚本语言,没有之一.Python的语言简洁灵活,标准库功能强大,平常可以用作计算器,文本编码转换,图片处理,批量下载,批量处理文本等.总之我很喜欢,也越用越上手,这么好用的一个工具,一般人我不告诉他... 因为其强大的字符串处理能力,以及urllib2,cookielib,re,threading这些

精通Python网络爬虫(0):网络爬虫学习路线

作者:韦玮 转载请注明出处 随着大数据时代的到来,人们对数据资源的需求越来越多,而爬虫是一种很好的自动采集数据的手段. 那么,如何才能精通Python网络爬虫呢?学习Python网络爬虫的路线应该如何进行呢?在此为大家具体进行介绍. 1.选择一款合适的编程语言 事实上,Python.PHP.JAVA等常见的语言都可以用于编写网络爬虫,你首先需要选择一款合适的编程语言,这些编程语言各有优势,可以根据习惯进行选择.在此笔者推荐使用Python进行爬虫项目的编写,其优点是:简洁.掌握难度低. 2.掌握

《用Python写网络爬虫》——2.2 三种网页抓取方法

2.2 三种网页抓取方法 现在我们已经了解了该网页的结构,下面将要介绍三种抓取其中数据的方法.首先是正则表达式,然后是流行的BeautifulSoup模块,最后是强大的lxml模块. 2.2.1 正则表达式 如果你对正则表达式还不熟悉,或是需要一些提示时,可以查阅https://docs.python.org/2/howto/regex.html 获得完整介绍. 当我们使用正则表达式抓取面积数据时,首先需要尝试匹配 元素中的内容,如下所示. >>> import re >>&

python实现多线程网页爬虫的2个例子

一般来说,使用线程有两种模式, 一种是创建线程要执行的函数, 把这个函数传递进Thread对象里,让它来执行. 另一种是直接从Thread继承,创建一个新的class,把线程执行的代码放到这个新的class里. 实现多线程网页爬虫,采用了多线程和锁机制,实现了广度优先算法的网页爬虫. 先给大家简单介绍下我的实现思路: 对于一个网络爬虫,如果要按广度遍历的方式下载,它是这样的: 1.从给定的入口网址把第一个网页下载下来 2.从第一个网页中提取出所有新的网页地址,放入下载列表中 3.按下载列表中的地

解决python写的爬虫程序抓取到的网页是乱码的问题

在开发自用爬虫过程中,有的网页是utf-8,有的是gb2312,有的是gbk,怎么办? 下面所说的都是针对python2.7 如果不加处理,采集到的都是乱码,解决的方法是将html处理成统一的utf-8编码. #chardet 需要下载安装 import chardet #抓取网页html html_1 = urllib2.urlopen(line,timeout=120).read() #print html_1 mychar=chardet.detect(html_1) #print myc

Python爬虫学习系列教程

Python版本:2.7 一.爬虫入门 1. Python爬虫入门一之综述 2. Python爬虫入门二之爬虫基础了解 3. Python爬虫入门三之Urllib库的基本使用 4. Python爬虫入门四之Urllib库的高级用法 5. Python爬虫入门五之URLError异常处理 6. Python爬虫入门六之Cookie的使用 7. Python爬虫入门七之正则表达式 二.爬虫实战 1. Python爬虫实战一之爬取糗事百科段子 2. Python爬虫实战二之爬取百度贴吧帖子 3. Py