python爬虫(三)--Python的set()

如果你已经掌握了爬虫基础,看了我前面三个基础再来继续看这一篇文章。
这篇文章主要讲解爬虫程序中必须要用到的python集合,如果你对集合很了解。那可以不用看。

在爬虫程序中,为了不重复爬取已经爬过的页面,我们需要把已经爬过的页面的url放进集合中,
在每一次要爬取某一个url之前,先看看集合里面是否已经存在,如果已经存在跳过这个url,如果不存在
我们把ur放进聚合中,然后再去爬取这个页面

python提供了set这种数据结构,set是一种无序的,不包含重复元素的结构,一般用来测试是否
已经包含了某元素,或者对众多元素们去重复。它支持的运算有交、并、差、对称差。像所有的
容器一样,set支持的方法有
x in set,len(set),for x in set
作为一个无序的结构,set不会记录元素的位置,以及元素插入的顺序,因此,set不支持一下方法
不支持(index,slice...)
set中的元素是可变的,改变set中元素的操作可以是add()和remove()。他没有散列值,因此
set不可以被认为是一个字典的key或者自以为其他set的元素

创建一个set可以用set()函数或者花括号{},但是创建一个空集是不能使用一个花括号的,只能用
set()函数,因为一个空的花括号创建的是一个字典数据结构,

先看一些例子吧:
1.1
s1 = {‘girl‘,‘boy‘,‘woman‘,‘man‘,‘older‘,‘child‘,‘man‘}
print(s1)
#结果:
{‘woman‘, ‘boy‘, ‘child‘, ‘man‘, ‘girl‘, ‘older‘}
#通过第一个例子可以看出两点,第一set可以直接去重,第二set元素是无序的

1.2
s1 = {‘girl‘,‘boy‘,‘woman‘,‘man‘,‘older‘,‘child‘,‘man‘}
print(‘girl在s1中吗?‘,‘girl‘ in s1)
print(‘girls在s中吗?‘,‘girls‘ in s1)
#输出是:
girl在s1中吗? True
girls在s中吗? False

1.3
len(s)
s1 = {‘girl‘,‘boy‘,‘woman‘,‘man‘,‘older‘,‘child‘,‘man‘}
print(‘s1有多少元素:‘,len(s1))
输出的:6
显然,len计算了去重之后的元素个数

1.4
关于issubset(),和issuperset()方法
s1 = {‘girl‘,‘boy‘,‘woman‘,‘man‘,‘older‘,‘child‘,‘man‘}
s2 = {‘boy‘,‘woman‘}
s3 = {‘boy‘,‘people‘}
print(s2.issubset(s1))   #s2中的元素是否全属于s1中的元素
print(s3.issubset(s1))     #s3中的元素是否全属于s1中的元素
print(s1.issuperset(s2)) #s2中的元素是否全属于s1中的元素
print(s1.issuperset(s3)) #s3中的元素是否全属于s1中的元素

1.5
s2 = {‘boy‘,‘woman‘}
s3 = {‘boy‘,‘people‘}
s2 |= s3
print(s2)   #以上两句话等同于print(s2.union(s3)),去重
set.union(set1,set2,set3...)方法,或者用 set | set2 | set3 |...
取并集

1.6
s2 = {‘boy‘,‘woman‘}
s3 = {‘boy‘,‘people‘}
s2 &= s3
print(s2)   #以上两句话等同于print(s2.intersection(s3))
set.intersection(set1,set2,set3...),或者用 set & set2 & set3...
取交集

1.7
s2 = {‘boy‘,‘woman‘}
s3 = {‘boy‘,‘people‘}
s2 -= s3
print(s2)   #以上两句话等同于print(s2.difference(s3))
set.difference(set2,set3...),或者用 set - set1 -set2...
存在于set中但是在其他set中不存在元素

1.8
s2 = {‘boy‘,‘woman‘}
s3 = {‘boy‘,‘people‘}
s2 ^= s3
print(s2)   #以上两句话等同于print(s2.symmetric_difference(s3))
返回一个新的set,这个set中存放的是,两个set中各自独有的元素

1.9
最后是最基本的增删改
s1 = {‘girl‘,‘boy‘,‘woman‘,‘man‘,‘older‘,‘child‘,‘man‘}
print(s1)
s1.add(‘hello‘)
print(s1)
s1.remove(‘hello‘)
print(s1)
s1.discard(‘man‘)
print(s1)
s1.pop()
print(s1)
s1.clear()

有了这些基础,你就可以进入下一界的学习了,下一节将进一步学习python的正则表达式

钟志远  江苏南京  904727147

时间: 2024-08-25 23:13:46

python爬虫(三)--Python的set()的相关文章

零基础学习Python web开发、Python爬虫、Python数据分析,从基础到项目实战!

随着大数据和人工智能的发展,目前Python语言的上升趋势比较明显,而且由于Python语言简单易学,所以不少初学者往往也会选择Python作为入门语言. Python语言目前是IT行业内应用最为广泛的编程语言之一,尤其是近几年来随着大数据和人工智能(机器学习.自然语言处理.计算机视觉等)的发展,Python也得到了越来越广泛的应用,另外Python在Web开发.后端开发和嵌入式开发领域也有广泛的应用. 小编推荐一个学Python的学习裙,九三七六六七 五零九,无论你是大牛还是小白,是想转行还是

Python爬虫(三)爬淘宝MM图片

直接上代码: # python2 # -*- coding: utf-8 -*- import urllib2 import re import string import os import shutil def crawl_taobaoMM(baseUrl, start, end): imgDir = 'mm_img' isImgDirExist = os.path.exists(imgDir) if not isImgDirExist: os.makedirs(imgDir) else:

Python爬虫(三)_urllib2:get和post请求

urllib.urlencode() urllib和urllib2都是接受URL请求的相关参数,但是提供了不同的功能.两个最显著的不同如下: urllib仅可以接受URL,不能创建设置了headers的Request类实例: 但是urllib提供了urlencode方法用来GET查询字符串的产生,而urllib2则没有.(这是urllib和urllib2经常一起使用的主要原因) 编码工作使用urllib的urlencode()函数,帮我们将key:value这样的键值对转换成"key=value

Python爬虫(三)——对豆瓣图书各模块评论数与评分图形化分析

文化         经管 ....略 结论: 一个模块的评分与评论数相关,评分为 [8.8——9.2] 之间的书籍评论数往往是模块中最多的 原文地址:https://www.cnblogs.com/LexMoon/p/douban3.html

Python爬虫(三)——开封市58同城出租房决策树构建

决策树框架: 1 # coding=utf-8 2 import matplotlib.pyplot as plt 3 4 decisionNode = dict(boxstyle='sawtooth', fc='10') 5 leafNode = dict(boxstyle='round4', fc='0.8') 6 arrow_args = dict(arrowstyle='<-') 7 8 9 def plotNode(nodeTxt, centerPt, parentPt, nodeTy

python爬虫(四)--python正则表达式

在爬虫的学习过程中,又一个你必须要掌握的知识点就是正则表达式 爬虫程序需要爬取你需要的东西,那么就对爬取的结果进行筛选,正则表达式就起到这样的作用 如果你学过任何一门语言,相信你都会接触正则表达式.并且正则表达式大多相同. 不管怎样,就像开头说的那样,因为这是爬虫基础教程.所以这篇文章要详细的说一下python的 正则表达式.开始进入正题吧. 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配.Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正

Python 爬虫介绍

1.Python 爬虫介绍 一.什么是爬虫 爬虫:一段自动抓取互联网信息的程序,从互联网上抓取对于我们有价值的信息. 二.Python爬虫架构 Python 爬虫架构主要由五个部分组成,分别是调度器.URL管理器.网页下载器.网页解析器.应用程序(爬取的有价值数据). 调度器:相当于一台电脑的CPU,主要负责调度URL管理器.下载器.解析器之间的协调工作. URL管理器:包括待爬取的URL地址和已爬取的URL地址,防止重复抓取URL和循环抓取URL,实现URL管理器主要用三种方式,通过内存.数据

Python爬虫技术干货,教你如何实现抓取京东店铺信息及下载图片

什么是Python爬虫开发 Python爬虫开发,从网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网站所有的网页都抓取完为止.世界上80%的爬虫是基于Python开发的,学好爬虫技能,可为后续的大数据分析.挖掘.机器学习等提供重要的数据源. Python爬虫实例参考 这是一个用Python爬虫实现抓取京东店铺信息以及下载图片的例子,仅供参考. 信息抓取: 图片下载的:注意: 1.在选择信息的时候用CS

Python爬虫进阶三之Scrapy框架安装配置

初级的爬虫我们利用urllib和urllib2库以及正则表达式就可以完成了,不过还有更加强大的工具,爬虫框架Scrapy,这安装过程也是煞费苦心哪,在此整理如下. Windows 平台: 我的系统是 Win7,首先,你要有Python,我用的是2.7.7版本,Python3相仿,只是一些源文件不同. 官网文档:http://doc.scrapy.org/en/latest/intro/install.html,最权威哒,下面是我的亲身体验过程. 1.安装Python 安装过程我就不多说啦,我的电