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里之后这个字符串就可以任你摆布了,比如:提取出所有标签

%ignore_pre_10%

或者提取出所有标签和标签

%ignore_pre_11%

这些属于beautifulsoup的内容了

5.多个关键字切分字符串

%ignore_pre_12%

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python教程:常用网页字符串处理技巧 - Python技术站

(0)
上一篇 2023年4月2日
下一篇 2023年4月2日

相关文章

  • Python学习:迭代器与生成器

    1.生成器 如果创建一个有很多元素的列表,但是只需要访问前几个元素,后面的元素占着的空间就白白浪费了 在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的list,从而节省大量的空间。 在Python中,这种一边循环一边计算的机制,称为生成器:generator。 要创建一个generator,有很多种方法 第一种方法很简单,只要把一个列表生成式的[]…

    Python开发 2023年4月2日
    00
  • Python中模块的四种方式

    一、什么是模块? 模块是一系列功能的集合体,而函数是某一个功能的集合体,因此模块可以看成是一堆函数的集合体。一个py文件内部就可以放一堆函数,因此一个py文件就可以看成一个模块。如果这个py文件的文件名为module.py,模块名则是module。 二、模块的四种形式 在Python中,总共有以下四种形式的模块: 自定义模块:如果你自己写一个py文件,在文件…

    Python开发 2023年3月31日
    00
  • 一篇文章轻松学会python装饰器

    1. 函数 在python中,函数通过def关键字、函数名和可选的参数列表定义。通过return关键字返回值。我们举例来说明如何定义和调用一个简单的函数: >>> def foo(): … return 1 >>> foo() 1 方法体(当然多行也是一样的)是必须的,通过缩进来表示,在方法名的后面加上双括号()就能够…

    Python开发 2023年4月2日
    00
  • Python学习:dict和set类型的用法

    1.什么是dict 我们已经知道,list 和 tuple 可以用来表示顺序集合,例如,班里同学的名字: [‘Adam’, ‘Lisa’, ‘Bart’] 或者考试的成绩列表: [95, 85, 59] 但是,要根据名字找到对应的成绩,用两个 list 表示就不方便。 如果把名字和分数关联起来,组成类似的查找表: ‘Adam’ ==> 95 ‘Lisa…

    Python开发 2023年4月2日
    00
  • python面向对象教程:类和实例

    面向对象简介 面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序执行。为了简化程序设计,面向过程把函数继续切分为子函数,即把大块函数通过切割成小块函数来降低系统的复杂度。 面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想。OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数…

    Python开发 2023年4月2日
    00
  • python教程:shutil高级文件操作

    1、shutil高级文件操作模块 shutil模块提供了大量的文件的高级操作。特别针对文件拷贝和删除,主要功能为目录和文件操作以及压缩操作。对单个文件的操作也可参见os模块。 2、shutil模块的拷贝方法 >>> import shutil >>> shutil.chown(‘test.txt’,user=’mysql’…

    Python开发 2023年3月31日
    00
  • Python 避免字典和元组的多重嵌套

    一、字典、元组的多重嵌套 例 1:记录全班学生的成绩。 分析:定义一个 SimpleGradebook类, 学生名是字典self._grades的键,成绩是字典self._grades的值。 class SimpleGradebook(): def __init__(self): self._grades = {} def add_student(self,…

    Python开发 2023年4月2日
    00
  • Python深浅拷贝的理解

    1.拷贝 拷贝实际上其实就是在赋值,比如我们有一个列表L1,定义另一个列表L2引用列表L1,实际上就是在拷贝列表L1的值,由于由于L1列表是可变的数据类型,所以当L1的值变的时候,L2的值也是在跟着变的.那其实就算L1内的是不可变的数据类型,L1的内容变化,L2的内容也一样会随之变化的 # # 拷贝(赋值) # Python学习交流QQ群:153708845…

    Python开发 2023年3月31日
    00
合作推广
合作推广
分享本页
返回顶部