Python 简单网页爬虫学习

简介: 1 #coding=utf-8 2 3 # 参考文章: 4 # 1. python实现简单爬虫功能 5 # http://www.cnblogs.com/fnng/p/3576154.
 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 )

 

目录
相关文章
|
1月前
|
数据采集 存储 XML
Python爬虫定义入门知识
Python爬虫是用于自动化抓取互联网数据的程序。其基本概念包括爬虫、请求、响应和解析。常用库有Requests、BeautifulSoup、Scrapy和Selenium。工作流程包括发送请求、接收响应、解析数据和存储数据。注意事项包括遵守Robots协议、避免过度请求、处理异常和确保数据合法性。Python爬虫强大而灵活,但使用时需遵守法律法规。
|
14天前
|
数据采集 存储 XML
Python爬虫:深入探索1688关键词接口获取之道
在数字化经济中,数据尤其在电商领域的价值日益凸显。1688作为中国领先的B2B平台,其关键词接口对商家至关重要。本文介绍如何通过Python爬虫技术,合法合规地获取1688关键词接口,助力商家洞察市场趋势,优化营销策略。
|
19天前
|
机器学习/深度学习 Python
堆叠集成策略的原理、实现方法及Python应用。堆叠通过多层模型组合,先用不同基础模型生成预测,再用元学习器整合这些预测,提升模型性能
本文深入探讨了堆叠集成策略的原理、实现方法及Python应用。堆叠通过多层模型组合,先用不同基础模型生成预测,再用元学习器整合这些预测,提升模型性能。文章详细介绍了堆叠的实现步骤,包括数据准备、基础模型训练、新训练集构建及元学习器训练,并讨论了其优缺点。
36 3
|
24天前
|
安全 关系型数据库 测试技术
学习Python Web开发的安全测试需要具备哪些知识?
学习Python Web开发的安全测试需要具备哪些知识?
32 4
|
2天前
|
存储 索引 Python
Python学习的自我理解和想法(6)
这是我在B站千锋教育学习Python的第6天笔记,主要学习了字典的使用方法,包括字典的基本概念、访问、修改、添加、删除元素,以及获取字典信息、遍历字典和合并字典等内容。开学后时间有限,内容较为简略,敬请谅解。
|
6天前
|
存储 程序员 Python
Python学习的自我理解和想法(2)
今日学习Python第二天,重点掌握字符串操作。内容涵盖字符串介绍、切片、长度统计、子串计数、大小写转换及查找位置等。通过B站黑马程序员课程跟随老师实践,非原创代码,旨在巩固基础知识与技能。
|
5天前
|
程序员 Python
Python学习的自我理解和想法(3)
这是学习Python第三天的内容总结,主要围绕字符串操作展开,包括字符串的提取、分割、合并、替换、判断、编码及格式化输出等,通过B站黑马程序员课程跟随老师实践,非原创代码。
|
2天前
|
Python
Python学习的自我理解和想法(7)
学的是b站的课程(千锋教育),跟老师写程序,不是自创的代码! 今天是学Python的第七天,学的内容是集合。开学了,时间不多,写得不多,见谅。
|
2天前
|
存储 索引 Python
Python学习的自我理解和想法(4)
今天是学习Python的第四天,主要学习了列表。列表是一种可变序列类型,可以存储任意类型的元素,支持索引和切片操作,并且有丰富的内置方法。主要内容包括列表的入门、关键要点、遍历、合并、判断元素是否存在、切片、添加和删除元素等。通过这些知识点,可以更好地理解和应用列表这一强大的数据结构。
|
2天前
|
索引 Python
Python学习的自我理解和想法(5)
这是我在B站千锋教育学习Python的第五天笔记,主要内容包括列表的操作,如排序(`sort()`、``sorted()``)、翻转(`reverse()`)、获取长度(`len()`)、最大最小值(`max()`、``min()``)、索引(`index()`)、嵌套列表和列表生成(`range`、列表生成式)。通过这些操作,可以更高效地处理数据。希望对大家有所帮助!