Python简易爬虫以及嵌套数据类型

一:起因

(0)爬虫就是网络蜘蛛,爬取指定URL的html网页的内容,所以会需要urllib2包,字符串string的操作肯定也是需要的,以及字符串匹配包re。

(1)Python的嵌套类型,一般在基础教程里面很少涉及到的;Python的更高级应用肯定会涉及的,只是个人能力有限,如今没有深入,期待不就将来接触学习一下。

(2)说起嵌套类型,这要从Java 或则 c++的嵌套类型说起,只要你处理数据,增删该查一般都会涉及到嵌套类型,原来的语言中涉及到,自然而然的想到了Python肯定也可以应用嵌套类型。

(3)下面简单的通过实例介绍一下嵌套类型,结合之前的blog,就基本上可以处理文本数据了。

二:代码实战

(1)Python字典嵌套(就是hash嵌套) 以及 list(列表)嵌套类型的示例

import itertools
#encoding = utf-8
#!/user/bin/python

print "**********test multi_dic_hash (hashtable order by key automatic)********"
data = {1: {1:'a',2:'b',3:'c'}, 2: {4:'d',5:'e',6:'f'}};
print data;
del data[2][4];
print data;
data[2][5] = 'w';
print data;

tjudata = {"cs":{"091":32,"093":34,"092":35},"ccs":{"081":32,"083":34,"082":35},"is":{"071":32,"073":34,"072":35}};
print tjudata;
#删除
del tjudata["cs"]["091"];
print tjudata;
#更改 添加
tjudata["cs"]["091"] = 85;
tjudata["cs"]["092"] = 101;
#遍历
s_keys = tjudata.keys();
for s_key in s_keys:
	print s_key,":";
	s_data = tjudata.get(s_key);
	#print s_key,"-->",s_data;
	c_keys = s_data.keys();
	for c_key in c_keys:
		c_value = s_data.get(c_key);
		print c_key,"-->",c_value;

print "**********test multi_list (hashtable order by key automatic)********"
#当里面的lst_one第一项字母相等时,就把第二项颜色拼接在一起。即最终实现[['A','黄绿白'],['B','黄'],['C','紫蓝']...]
lst_all = [['A','Blue'],['A','Green'],['A','Yellow'],['B','Red'],['C','Red'],['C','White']];
collector = [];
for k, lstgroup in itertools.groupby(sorted(lst_all), lambda x: x[0]):
	collector.append([k, ','.join([c[1] for c in lstgroup])]);
print collector;
#删除
print lst_all;del lst_all[0][0];
print lst_all;
#更改 添加
lst = lst_all[0];
lst.insert(0,'D');
#lst_all.insert[0][0] = 'D';
lst_all[1][1] = 'RDS';
#遍历
for lst in lst_all:
	for ele in lst:
		print ele;

(2)简单的网络爬虫

#coding=utf-8
import urllib

def getHtml(url):
    page = urllib.urlopen(url)
    html = page.read()
    return html

html = getHtml("https://www.baidu.com/")

print html

(3)urllib*简介 转载自 http://www.cnblogs.com/yuxc/archive/2011/08/01/2123995.html

1). urllib:

官网的一句话描述是:通过url打开任意资源。从官网的简介来看,这个模块最初是模拟文件模块来实现的,只是将本地的文件路径,改为远程的互联网url。常用操作有:

urlopen(url, [,data])——根据url打开一个网页,根据参数区分post或者get

urlretrieve()——将指定url的网页内容复制一份到指定的本地文件

quote()——将url中的特殊字符或汉字encode成指定编码

unquote()——将url中的url编码解码

详情参看:http://docs.python.org/2/library/urllib.html

2). urllib2:

官网的一句话描述很笼统:打开url的拓展库。主要是说,对url打开的一些更复杂的操作,如操作相关的一些认证、重定向和cookie等等。这样来看,更印证了urllib模块是模拟文件操作实现的思路。因为这些“复杂操作”是打开url独有的,文件操作确实不存在的。urllib2中没有quote和unquote的操作,这个只在urllib中有;同时也没有了urlretrieve。常见的操作:

urlopen(url,[,data],[,timeout])——增加了请求响应的超时时间,在urllib中需要借助socket模块来实现,这里更方便了,登场率也就更高了

Request.* ——添加了对Request的支持;也可以方便的操作Header里面的东西了

详情参看:http://docs.python.org/2/library/urllib2.html

3). urllib3:

首先,这个不是一个标准库,是一个拓展库。该模块的介绍重点说它的作用:提供了urllib和urllib2中没有的连接池和文件的post功能。由于不是标准库,因此,需要单独下载和安装,地址参看:https://pypi.python.org/pypi/urllib3。虽然他是针对python2.*版本中的urllib和urllib2的遗漏功能启动的项目,但现在也同样支持python3.3中的开发。由于个人尚无python3的使用经验,也就不多说什么了。

时间: 2024-10-20 19:56:49

Python简易爬虫以及嵌套数据类型的相关文章

python简易爬虫实现

目的:爬取昵称 目标网站:糗事百科 依赖的库文件:request.sys.beautifulSoup4.imp.io Python使用版本:3.4 说明:参考http://cn.python-requests.org/zh_CN/latest/user/quickstart.html 步骤: 一.熟悉request Request介绍: Request库是一个python http库,其内部依赖urllib3库. 以下是它的功能特性: 国际化域名和 URL.Keep-Alive & 连接池.带持

Python简易爬虫爬取百度贴吧图片

通过python 来实现这样一个简单的爬虫功能,把我们想要的图片爬取到本地.(Python版本为3.6.0) 一.获取整个页面数据 def getHtml(url): page=urllib.request.urlopen(url) html=page.read() return html 说明: 向getHtml()函数传递一个网址,就可以把整个页面下载下来. urllib.request 模块提供了读取web页面数据的接口,我们可以像读取本地文件一样读取www和ftp上的数据. 二.筛选页面

python简易爬虫

这两天看了一下python的基础语法,跟着网上的教程爬了一下百度百科和python相关联的词条.采用了beautifulsoup4插件 下面是流程 首先是一个url管理器,负责增加/获取/判断是否有url 1 # coding:UTF8 2 #url管理器 3 class UrlManager(object): 4 def __init__(self): 5 self.new_urls=set() 6 self.old_urls=set() 7 8 def add_new_url(self,ur

Python网络爬虫(上)

Python网络爬虫(上) 概述 预备知识 1.如何处理包含大量 JavaScript(JS)的页面以及如何处理登录问题 2.screen scraping(网页抓屏).data mining(数据挖掘).web harvesting(网页收割).网页抓取.web crawler(网络爬虫).bot(网络机器人) 3.网页爬虫的优点:一.同时处理几千甚至几百万个网页:二.区别于传统搜索引擎,可以获取更加准确的数据信息:三.与 API 获取数据相比,网页爬虫灵活性更强 4.网页爬虫运用于:市场预测

第三百六十四节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)的mapping映射管理

第三百六十四节,Python分布式爬虫打造搜索引擎Scrapy精讲-elasticsearch(搜索引擎)的mapping映射管理 1.映射(mapping)介绍 映射:创建索引的时候,可以预先定义字段的类型以及相关属性elasticsearch会根据json源数据的基础类型猜测你想要的字段映射,将输入的数据转换成可搜索的索引项,mapping就是我们自己定义的字段数据类型,同时告诉elasticsearch如何索引数据以及是否可以被搜索 作用:会让索引建立的更加细致和完善 类型:静态映射和动态

使用 HttpClient 和 HtmlParser 实现简易爬虫_Linux !

body { font-family: Lucida Console; font-size: 12pt; line-height: 1.5; } html, body { color: ; background-color: ; } h1 { font-size:1.5em; font-weight:bold; } h2 { font-size:1.4em; font-weight:bold; } h3 { font-size:1.3em; font-weight:bold; } h4 { fo

使用 HttpClient 和 HtmlParser 实现简易爬虫

这篇文章介绍了 HtmlParser 开源包和 HttpClient 开源包的使用,在此基础上实现了一个简易的网络爬虫 (Crawler),来说明如何使用 HtmlParser 根据需要处理 Internet 上的网页,以及如何使用 HttpClient 来简化 Get 和 Post 请求操作,构建强大的网络应用程序. 源文地址:http://www.ibm.com/developerworks/cn/opensource/os-cn-crawler/ HttpClient 与 HtmlPars

[转]使用 HttpClient 和 HtmlParser 实现简易爬虫

http://www.ibm.com/developerworks/cn/opensource/os-cn-crawler/ http://blog.csdn.net/dancen/article/details/7570911 HttpClient 与 HtmlParser 简介本小结简单的介绍一下 HttpClinet 和 HtmlParser 两个开源的项目,以及他们的网站和提供下载的地址. HttpClient 简介HTTP 协议是现在的因特网最重要的协议之一.除了 WEB 浏览器之外,

Python 网页爬虫 & 文本处理 & 科学计算 & 机器学习 & 数据挖掘兵器谱(转)

原文:http://www.52nlp.cn/python-网页爬虫-文本处理-科学计算-机器学习-数据挖掘 曾经因为NLTK的缘故开始学习Python,之后渐渐成为我工作中的第一辅助脚本语言,虽然开发语言是C/C++,但平时的很多文本数据处理任务都交给了Python.离开腾讯创业后,第一个作品课程图谱也是选择了Python系的Flask框架,渐渐的将自己的绝大部分工作交给了Python.这些年来,接触和使用了很多Python工具包,特别是在文本处理,科学计算,机器学习和数据挖掘领域,有很多很多