Python 获取div标签中的文字实例


Posted in Python onDecember 20, 2018

预备知识点

compile 函数

compile 函数用于编译正则表达式,生成一个正则表达式( Pattern )对象,供 match() 和 search() 这两个函数使用。

语法格式为:

re.compile(pattern[, flags])
.compile(pattern[, flags])

参数:

pattern : 一个字符串形式的正则表达式

flags 可选,表示匹配模式,比如忽略大小写,多行模式等,具体参数为:

re.I 忽略大小写

re.L 表示特殊字符集 \w, \W, \b, \B, \s, \S 依赖于当前环境

re.M 多行模式

re.S 即为' . '并且包括换行符在内的任意字符(' . '不包括换行符)

re.U 表示特殊字符集 \w, \W, \b, \B, \d, \D, \s, \S 依赖于 Unicode 字符属性数据库

re.X 为了增加可读性,忽略空格和' # '后面的注释

检索和替换

Python 的re模块提供了re.sub用于替换字符串中的匹配项。

语法:

re.sub(pattern, repl, string, count=0)
.sub(pattern, repl, string, count=0)

参数:

pattern : 正则中的模式字符串。

repl : 替换的字符串,也可为一个函数。

string : 要被查找替换的原始字符串。

count : 模式匹配后替换的最大次数,默认 0 表示替换所有的匹配。

Python中字符串前面加上 r 表示原生字符串, 与大多数编程语言相同,正则表达式里使用"\"作为转义字符,这就可能造成反斜杠困扰。假如你需要匹配文本中的字符"\",那么使用编程语言表示的正则表达式里将需要4个反斜杠"\\\\":前两个和后两个分别用于在编程语言里转义成反斜杠,转换成两个反斜杠后再在正则表达式里转义成一个反斜杠。Python里的原生字符串很好地解决了这个问题,这个例子中的正则表达式可以使用r"\\"表示。同样,匹配一个数字的"\\d"可以写成r"\d"。有了原生字符串,你再也不用担心是不是漏写了反斜杠,写出来的表达式也更直观。

思路整理:

在编程过程中遇到的部分问题在这里写出来和大家共享

问题1:在编程过程中成功获取了目标的名字,但是它存在于div框架中,我们要做的就是将div中的文字与标签分开,在这里我们用的是正则表达式

问题2:

上代码:

<span style="color:#000000"># -*- coding: UTF-8 -*-
import requests
import time
import re
from bs4 import BeautifulSoup
from urllib.request import urlretrieve
 
if __name__ == '__main__':
  list_url = []
  url = 'https://www.names.org/n/kevin/about'
  #设置请求头信息
  headers = {
    "User-Agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"
  }
  req = requests.get(url=url,headers=headers)
  req.encoding='utf-8'
  html=req.text
  bf = BeautifulSoup(html,'html.parser')
  targets_url_1 = bf.find_all(class_='container page-section')
  bf = BeautifulSoup(str(targets_url_1),'html.parser')
  targets_url_2 = bf.find_all(class_='name')
  
  #保存名字链接
  for each in targets_url_2:
    list_url.append(re.sub('[\t\n]',"",re.sub(r'<[^>]+>',"",str(each))))
  
  f = open('test.txt', 'w') #首先先创建一个文件对象,打开方式为w
  for each in list_url:
    f.writelines(each) #用readlines()方法写入文件
    f.writelines('\n')
     
  print(list_url)
   
  print('下载完成!')
     </span>

以上这篇Python 获取div标签中的文字实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python求解水仙花数的方法
May 11 Python
在CentOS上配置Nginx+Gunicorn+Python+Flask环境的教程
Jun 07 Python
Python创建对称矩阵的方法示例【基于numpy模块】
Oct 12 Python
Python使用jsonpath-rw模块处理Json对象操作示例
Jul 31 Python
python实现微信小程序自动回复
Sep 10 Python
对Python中实现两个数的值交换的集中方法详解
Jan 11 Python
在python里从协程返回一个值的示例
Feb 19 Python
Django时区详解
Jul 24 Python
redis数据库及与python交互用法简单示例
Nov 01 Python
python爬虫模块URL管理器模块用法解析
Feb 03 Python
python中可以声明变量类型吗
Jun 18 Python
详解Python中*args和**kwargs的使用
Apr 07 Python
浅谈Python采集网页时正则表达式匹配换行符的问题
Dec 20 #Python
Python实现正则表达式匹配任意的邮箱方法
Dec 20 #Python
用Python编写一个高效的端口扫描器的方法
Dec 20 #Python
python re正则匹配网页中图片url地址的方法
Dec 20 #Python
python使用pdfminer解析pdf文件的方法示例
Dec 20 #Python
python爬取指定微信公众号文章
Dec 20 #Python
在Django中URL正则表达式匹配的方法
Dec 20 #Python
You might like
ecshop 批量上传(加入自定义属性)
2012/03/20 PHP
如何在PHP中使用正则表达式进行查找替换
2013/06/13 PHP
thinkPHP框架实现的短信接口验证码功能示例
2018/06/20 PHP
PHP字符串和十六进制如何实现互相转换
2020/07/16 PHP
Nigma vs Alliance BO5 第五场2.14
2021/03/10 DOTA
js Date自定义函数 延迟脚本执行
2010/03/10 Javascript
JQuery autocomplete 使用手册
2010/04/01 Javascript
jQuery EasyUI 中文API Layout(Tabs)
2010/04/27 Javascript
JS小功能(onmouseover实现选择月份)实例代码
2013/11/28 Javascript
SinaEditor使用方法详解
2013/12/28 Javascript
JavaScript实现鼠标点击后层展开效果的方法
2015/05/13 Javascript
JavaScript实现的圆形浮动标签云效果实例
2015/08/06 Javascript
不依赖Flash和任何JS库实现文本复制与剪切附源码下载
2015/10/09 Javascript
使用Function.apply()的参数数组化来提高 JavaScript程序性能的技巧
2015/12/23 Javascript
javascript实现数字倒计时特效
2016/03/30 Javascript
vue解决跨域路由冲突问题思路解析
2017/11/03 Javascript
通过js动态创建标签,并设置属性方法
2018/02/24 Javascript
js时间戳转yyyy-MM-dd HH-mm-ss工具类详解
2019/04/30 Javascript
Vue 使用计时器实现跑马灯效果的实例代码
2019/07/11 Javascript
JS 创建对象的模式实例小结
2020/04/28 Javascript
vue 授权获取微信openId操作
2020/11/13 Javascript
Pandas 对Dataframe结构排序的实现方法
2018/04/10 Python
Python unittest单元测试框架总结
2018/09/08 Python
pygame游戏之旅 添加游戏界面按键图形
2018/11/20 Python
python tkinter canvas 显示图片的示例
2019/06/13 Python
Python中一个for循环循环多个变量的示例
2019/07/16 Python
python 模拟贷款卡号生成规则过程解析
2019/08/30 Python
Django之模板层的实现代码
2019/09/09 Python
中国排名第一的外贸销售网站:LightInTheBox.com(兰亭集势)
2016/10/28 全球购物
美国定制钻石订婚戒指:Ritani
2017/12/08 全球购物
送给他或她的礼物:FUN.com
2018/08/17 全球购物
德国游戏机商店:Konsolenkost
2019/12/08 全球购物
《阳光》教学反思
2014/02/23 职场文书
一篇带你入门Java垃圾回收器
2021/06/16 Java/Android
对讲机的最大通讯距离是多少
2022/02/18 无线电
Apache自带的ab压力测试工具的实现
2022/07/23 Servers