Python常用网页字符串处理技巧
首先一些Python字符串处理的简易常用的用法。其他的以后用到再补充。
1.去掉重复空格
s = "hello hello hello"
s = ' '.join(s.split())
2.去掉所有回车(或其他字符或字符串)
s = "hello\nhello\nhello hello\n"
print(s)
s = s.replace("\n","")
print(s)
3.查找字符串首次出现的位置(没有返回-1)
s = "hello\nhello\nhello hello\n"
print(s.find('\n'))
print(s.find('la'))
4.查找字符串从后往前找首次出现的位置(没有返回-1)
s = "hello\nhello\nhello hello\n"
print(s.rfind('\n'))
print(s.rfind('la'))
5.将字符串转化成列表list
s = "hello\nhello\nhello hello\n"
print(list(s))
6.查找所有匹配的子串
import re s = "hello\nhello\nhello hello\n"
print(re.findall('hello',s)) # hello也可以换成正则表达式
然后是网页字符串处理的高端用法:(综合运用requests模块,beautifulsoup模块,re模块等)
1.requests获取一个链接的内容并原封不动写入文件
import requests r = requests.get('https://baike.baidu.com')
with open('test.html', 'wb') as fd:
for chunk in r.iter_content(100):
fd.write(chunk)
2.读取一个文件的所有内容存到一个字符串里
# encoding : utf-8 with open('test.html','r',encoding='utf-8') as f:
content = f.readlines()
content = ''.join(content)
# content = content.replace('\n','') # 如果想去掉回车可以加上这行
print(content)
3.把网页字符串用BeautifulSoup存起来处理
from bs4 import BeautifulSoup soup = BeautifulSoup(content,'html.parser')
print(soup.prettify())
4.存到BeautifulSoup里之后这个字符串就可以任你摆布了,比如:提取出所有<a>标签
soup = BeautifulSoup(content,'html.parser')
print(soup.find_all('a'))
或者提取出所有<a>标签和<b>标签
soup = BeautifulSoup(content,'html.parser')
print(soup.find_all(['a','b']))
这些属于beautifulsoup的内容了,可以看官方文档:https://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/
也可以看我的另一篇博客:http://www.cnblogs.com/itlqs/p/5902678.html
5.多个关键字切分字符串
import re
re.split('; |, ',str) >>> a='Beautiful, is; better*than\nugly'
>>> import re
>>> re.split('; |, |\*|\n',a)
['Beautiful', 'is', 'better', 'than', 'ugly']
Python常用网页字符串处理技巧的更多相关文章
- python常用的字符串格式化有哪几种?
常用字符串格式化%和format 皇城PK Python中格式化字符串目前有两种阵营:%和format,我们应该选择哪种呢? 自从Python2.6引入了format这个格式化字符串的方法之后,我认为 ...
- python 常用的字符串方法
st = ' hello Kitty 'str = 'hello {name} {age}' #print(st.format(name='fadfa'))#常用的字符串方法print(st.coun ...
- [Python Study Notes]字符串处理技巧(持续更新)
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ...
- python常用连接字符串
1.使用占位符% print(('%s%s%s' % ('one','two', 'three'))) 2.'+'号连接 字符串是不可变对象,每次改变会申请一块新的内存,操作符+连接字符串的时候会涉及 ...
- C++常用的字符串处理函数-全
这是自己用stl实现的一些字符串处理函数和常用的字符串处理技巧,经验正基本无误,可直接使用,若有问题,可相应列出 包括:split string to int int to string join # ...
- [python] 常用正则表达式爬取网页信息及分析HTML标签总结【转】
[python] 常用正则表达式爬取网页信息及分析HTML标签总结 转http://blog.csdn.net/Eastmount/article/details/51082253 标签: pytho ...
- Python 编程语言要掌握的技能之一:使用数字与字符串的技巧
最佳实践 1. 少写数字字面量 “数字字面量(integer literal)” 是指那些直接出现在代码里的数字.它们分布在代码里的各个角落,比如代码 del users[0] 里的 0 就是一个数字 ...
- Python使用数字与字符串的技巧
1.少写数字字面量 "数字字面量(integer literal)" 是指那些直接出现在代码里的数字.它们分布在代码里的各个角落,比如代码 del users[0] 里的 0 就是 ...
- Python 工匠:使用数字与字符串的技巧
序言 这是 "Python 工匠"系列的第 3 篇文章. 数字是几乎所有编程语言里最基本的数据类型,它是我们通过代码连接现实世界的基础.在 Python 里有三种数值类型:整型(i ...
随机推荐
- linux中怎样从底部向上查看log文件
对于一些很大的log文件,我们用more查看时会很费劲,没有办法直接跳到末尾再向前查看. 我们可以用less来解决,less查看一个文件时,可以使用类似vi的command命令,在command模式下 ...
- 基于HTTP 协议认证介绍与实现
导言 一直对http 的头认证有兴趣,就是路由器的那种弹出对话框输入账号密码怎么实现一直不明白,最近,翻了一下http 协议,发现这是一个RFC 2617的实现,所以写篇文章介绍一下吧. Http基本 ...
- library cache lock和cursor: pin S wait on X等待
1.现象: 客户10.2.0.4 RAC环境,出现大量的library cache lock和cursor: pin S wait on X等待,经分析是由于统计信息收集僵死导致的.数据库在8点到9点 ...
- PHP Framework安装
Framework 1> 初始化 前提:服务器上已经装有 Apache/Nginx 和 MySQL 进入 hush-framework/hush-app/bin 目录(Linux 下需执行 ch ...
- 一段实现页面上的图片延时加载的js
大家如果使用firebug去查看的话就会发现,当你滚动到相应的行时,当前行的图片才即时加载的,这样子的话页面在打开只加可视区域的图片,而其它隐藏的图片则不加载,一定程序上加快了页面加载的速度,对于比较 ...
- eclipse 工程加入ant以支持自动打war包
先在工程的根目录下建一个一builder.xml内容如下 <project basedir="." default="war" name="hb ...
- 性能测试指标&说明 [解释的灰常清楚哦!!]
详见: 浅谈软件性能测试中关键指标的监控与分析 http://www.51testing.com/html/18/n-3549018.html
- 推荐一款C#反编译软件(开源)
大二的时候老师要求做过一个小项目,大概4个人左右一组.当时交流不是特别到位,项目在一个同学的电脑上建成了就一直在他的电脑上(所以好东西不要烂在你的硬盘里),也不知道什么源码管理,可悲到项目做完我还没有 ...
- mysql 经典题目
题目1:实现如下效果 CREATE TABLE IF NOT EXISTS tb_amount( `Id` INT NOT NULL AUTO_INCREMENT, `), `), `Amount` ...
- Codeforces Educational Codeforces Round 15 D. Road to Post Office
D. Road to Post Office time limit per test 1 second memory limit per test 256 megabytes input standa ...