python字符串

【学习笔记】PYTHON网络爬虫与信息提取(北理工 嵩天)

你。 提交于 2019-11-29 06:01:22
学习目的: 掌握定向网络数据爬取和网页解析的基本能力 the Website is the API… 1 python ide 文本ide:IDLE,Sublime Text 集成ide:Pycharm,Anaconda&Spyder,Wing,Visual Studio & PTVS,Eclipse & PyDev,Canopy 默认源太慢: 阿里云 http://mirrors.aliyun.com/pypi/simple/ 中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/ 豆瓣(douban) https://pypi.douban.com/simple/ 清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/ 中国科学技术大学 https://pypi.mirrors.ustc.edu.cn/simple/ 2 网络爬虫规则 2.1 Requests库 自动爬取html页面 #安装方法 管理员权限启动cmd安装 pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple #测试下 #requests库7个主要方法: a、requests.request() 构造一个请求,支撑以下各方法的基础方法 b、requests

Python快速开发分布式搜索引擎Scrapy精讲—css选择器

时间秒杀一切 提交于 2019-11-29 05:31:07
css选择器 1、 2、 3、 ::attr()获取元素属性,css选择器 ::text获取标签文本 如果你依然在编程的世界里迷茫,可以加入我们的Python学习扣qun:784758214,看看前辈们是如何学习的。交流经验。从基础的python脚本到web开发、爬虫、django、数据挖掘等,零基础到项目实战的资料都有整理。送给每一位python的小伙伴!分享一些学习的方法和需要注意的小细节,点击加入我们的 python学习者聚集地 举例: extract_first('')获取过滤后的数据,返回字符串,有一个默认参数,也就是如果没有数据默认是什么,一般我们设置为空字符串 extract()获取过滤后的数据,返回字符串列表 # -*- coding: utf-8 -*- import scrapy class PachSpider(scrapy.Spider): name = 'pach' allowed_domains = ['blog.jobbole.com'] start_urls = ['http://blog.jobbole.com/all-posts/'] def parse(self, response): asd = response.css('.archive-title::text').extract() #这里也可以用extract_first(''

习题 6:字符串和文本

大城市里の小女人 提交于 2019-11-29 04:44:02
虽然你已经在程序中写过字符串了,但你还不了解它。 字符串通常是指你想要展示给别人的或者想要从程序里“导出”的一小段字符。Python可以通过文本里的双引号(")或者单引号(')识别出字符串来。 字符串可以包含之前已经见过的格式化字符。变量是你用“名字 = 值”这样的代码设置出来的。 Python还有一种使用 .format( ) 语法的格式化方式,你会在ex6.py发现它。 ex6.py # 人的类型 types_of_people = 10 # 有几种类型的人 x = f"There are {types_of_people} types of people." # 二进制 binary = "binary" # 不 do_not = "don't" # 知道二进制的人和不知道二进制的人 y = f"Those who know {binary} and those who (do_not)." print(x) print(y) # 我说:有10种类型的人。 print(f"I said: {x}") # 我还说:知道二进制的人和不知道二进制的人 print(f"I also said: '{y}'") # 搞笑 = 假的 hilarious = False # 笑话评价:那笑话好笑吗?! joke_evaluation = "Isn't that joke so funny?

Python字符串和正则表达式中的反斜杠('\\')问题

和自甴很熟 提交于 2019-11-29 04:22:45
在Python普通字符串中 在Python中,我们用'\'来转义某些普通字符,使其成为特殊字符,比如 In [1]: print('abc\ndef') # '\n'具有换行的作用 abc defg In [2]: print('abc\tdef') # '\t'具有制位符的作用 abc defg 我们还可以用'\'来转义特殊字符,使其成为普通字符,比如 In [3]: print('abc\\tdef') # 使'\'成为一个普通的字符,没有转义作用 abc\tdef In [4]: print('abc\'tdef') # 使'''成为一个普通的字符,不再需要和另一半单引号'''配对 abc'tde 所以,在python普通字符串中,我们不能以奇数个'\'结尾,这样会导致结束的的引号转义成一个纯字符,从而使得这段字符串没有引号来结束。 在Python原生字符串中 我们在字符串前加一个'r'来表示原生字符串,比如r'abc'。原生字符串中的特殊字符的特殊含义将会被剥夺掉,如下 In [5]: print(r'abc\ndefg') # '\n'没有换行的作用,仅仅是一个普通的字符串 abc\ndefg In [6]: print(r'abc\tdefg') # '\t'没有制位符的作用,仅仅是一个普通的字符串 abc\tdef 这里有一个奇怪的问题,在原生字符串中,虽然'\

from __future__ import unicode_literals

吃可爱长大的小学妹 提交于 2019-11-29 03:26:43
在Python中有些库的接口要求参数必须是str类型字符串,有些接口要求参数必须是unicode类型字符串。     对于str类型的字符串,调用len()和遍历时,其实都是以字节为单位的,这个太坑爹了,同一个字符使用不同的编码格式,长度往往是不同的。     对unicode类型的字符串调用len()和遍历才是以字符为单位,这是我们所要的。   另外,Django,Django REST framework的接口都是返回unicode类型的字符串。     为了统一,我个人建议使用from __future__ import unicode_literals,将模块中显式出现的所有字符串转为unicode类型,不过,对于必须使用str字符串的地方要加以注意。 关于字符串类型, 也是Python2坑爹的地方 为了适应Python 3.x的新的字符串的表示方法,在2.7版本的代码中,可以通过unicode_literals来使用Python 3.x的新的语法 来源: https://www.cnblogs.com/wangshicheng/p/11443110.html

python 正则表达

微笑、不失礼 提交于 2019-11-29 02:29:10
在线工具 可以用这个 在线测试工具 http://tool.chinaz.com/regex/ 来看你的正则表达式 正则表达式 正则,就是只和字符串相关。匹配‘1’就是去匹配‘1’,直接匹配就是了。 字符组:[字符组] 在同一个位置可能出现的各种字符组成了一个字符组,在正则表达式中用[]表示。 字符分为很多类,比如数字,字母,标点符号等。 假如你现在要求一个位置“只能出现一个数字”,那么这个位置上的字符只能是0-9这10个数字。 字符组 正则 待 匹 配 字 符 匹配 结果 说明 [0123456789] 8 True 在一个字符组里枚举合法的所有字符,字符组里的任意一个字符和 “待匹配字符”相同都视为可以匹配 [0123456789] a False 由于字符组里没有‘a’这个字符,所以不能匹配 [0-9] 7 True 也可以用-表示范围,[0-9]和[0123456789]是一个意思 [a-z] s True 同样如果要匹配 所有小写字母,直接用[a-z]就可以了 [A-Z] B True [A-Z]表示所有的大写字母 [0-9a-fA-F E True 可以匹配数字,大小写形式的a~~f,用来验证16进制字符 字符: 元字符 匹配内容 . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线 \s 匹配任意的空白符 \d 匹配数字 \n 匹配一个换行符 \t

python3 byte,int,str转换

南笙酒味 提交于 2019-11-28 22:44:21
1 # bytes 与 int 2 b=b'\x01\x02' 3 num=int.from_bytes(b,'little') 4 print('bytes转int:',num) 5 6 b1=num.to_bytes(2,'little') 7 print('int转bytes:',b1) 8 9 #bytes 与十六进制string 10 hs=''.join(['%02X' %x for x in b]) 11 print('bytes转十六进制字符串:',hs) 12 bs=bytes.fromhex(hs) 13 print('十六进制字符串转bytes:',bs) 14 # print(bytes.fromhex(hex(78)[2:])) 15 16 #int 与 string 17 s='abcd' 18 num=int(s,16) 19 print('字符串转int:',num) 20 print('int转十六进制字符串:',hex(num)) 输出: bytes转int: 513 int转bytes: b'\x01\x02' bytes转十六进制字符串: 0102 十六进制字符串转bytes: b'\x01\x02' 字符串转int: 43981 int转十六进制字符串: 0xabcd 其他转换: int(x [,base ]) 将x转换为一个整数 long

python之正则表达式

随声附和 提交于 2019-11-28 22:19:36
一、常用的匹配规则总结表 模式 描述 \w 匹配字母数字及下划线 \W 匹配非字母数字及下划线 \s 匹配任意空白字符,等价于 [\t\n\r\f]. \S 匹配任意非空字符 \d 匹配任意数字,等价于 [0-9] \D 匹配任意非数字 \A 匹配字符串开始 \Z 匹配字符串结束,如果是存在换行,只匹配到换行前的结束字符串 \z 匹配字符串结束 \G 匹配最后匹配完成的位置 \n 匹配一个换行符 \t 匹配一个制表符 ^ 匹配字符串的开头 $ 匹配字符串的末尾 . 匹配任意字符,除了换行符 [...] 用来表示一组字符,单独列出:[amk] 匹配 'a','m' 或 'k' [^...] 不在 [] 中的字符:[^abc]匹配除了 a,b,c 之外的字符。 * 匹配 0 个或多个的表达式。 + 匹配 1 个或多个的表达式。 ? 匹配 0 个或 1 个由前面的正则表达式定义的片段,非贪婪方式 {n} 精确匹配 n 个前面表达式。 {n, m} 匹配 n 到 m 次由前面的正则表达式定义的片段,贪婪方式 a \| b 匹配 a 或 b ( ) 匹配括号内的表达式,也表示一个组 相关具体应用例子,请见: Python-正则表达式 二、re库中常用方法 函数 描述 re.match(pattern, string, flags=0) 尝试从字符串的起始位置匹配一个模式

Python练习篇1-字符串输出格式

喜你入骨 提交于 2019-11-28 22:15:01
本文介绍字符串使用和输出格式 #字符串 s = 'Hello' print ( type ( s ) ) #打印类型 #输出结果: # < class 'str' > #插入 s = s + 'World' #用加号尾部链接 print ( s ) #输出结果: #HelloWorld s = s [ : 5 ] + ',Python,' + s [ 5 : ] #中间插入str [ : n ] + str + str [ n : ] print(s) #输出结果: #Hello , Python , World #切割 print ( s [ : 1 ] ) #s [ : 1 ] 打印头部第一个字符 print ( s [ 1 : ] ) #s [ 1 : ] 打印尾部最后一个字符 #输出结果: # H #d #输出对齐方式 print ( s . rjust ( 50 , '-' ) ) #右对齐,占位 50 个字节,不足部分用‘ - ’补齐 print ( s . ljust ( 50 , "-" ) ) #左对齐,占位 50 个字节,不足部分用‘ - ’补齐 print ( s . center ( 50 , '-' ) ) #中间对齐,占位 50 个字节,不足部分用‘ - ’补齐 print ( s . zfill ( 50 ) ) #占位 50 个字节,不足部分用‘ 0

python读写json文件

冷暖自知 提交于 2019-11-28 19:29:53
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、Java、JavaScript、Perl、Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。 JSON在python中分别由list和dict组成。 这是用于序列化的两个模块: json: 用于字符串和python数据类型间进行转换 pickle: 用于python特有的类型和python的数据类型间进行转换 Json模块提供了四个功能:dumps、dump、loads、load pickle模块提供了四个功能:dumps、dump、loads、load json dumps把数据类型转换成字符串 dump把数据类型转换成字符串并存储在文件中 loads把字符串转换成数据类型 load把文件打开从字符串转换成数据类型 json是可以在不同语言之间交换数据的,而pickle只在python之间使用。json只能序列化最基本的数据类型,josn只能把常用的数据类型序列化(列表、字典、列表、字符串、数字、),比如日期格式、类对象!josn就不行了。而pickle可以序列化所有的数据类型