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最长公共子串算法实例
Mar 07 Python
python使用append合并两个数组的方法
Apr 28 Python
wxPython定时器wx.Timer简单应用实例
Jun 03 Python
浅谈python中的面向对象和类的基本语法
Jun 13 Python
Python自然语言处理之词干,词形与最大匹配算法代码详解
Nov 16 Python
Python 解决中文写入Excel时抛异常的问题
May 03 Python
python3+PyQt5 自定义窗口部件--使用窗口部件样式表的方法
Jun 26 Python
python3在同一行内输入n个数并用列表保存的例子
Jul 20 Python
使用python快速在局域网内搭建http传输文件服务的方法
Nov 14 Python
Pytest参数化parametrize使用代码实例
Feb 22 Python
python从PDF中提取数据的示例
Oct 30 Python
简单谈谈Python面向对象的相关知识
Jun 28 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
如何在PHP中使用Oracle数据库(2)
2006/10/09 PHP
GBK的页面输出JSON格式的php函数
2010/02/16 PHP
一个显示某段时间内每个月的方法 返回由这些月份组成的数组
2012/05/16 PHP
PHP遍历目录并返回统计目录大小
2014/06/09 PHP
php防止站外远程提交表单的方法
2014/10/20 PHP
PHP测试成功的邮件发送案例
2015/10/26 PHP
微信自定义菜单的创建/查询/取消php示例代码
2016/08/05 PHP
PHP获取类私有属性的3种方法
2020/09/10 PHP
多种方式实现JS调用后台方法进行数据交互
2013/08/20 Javascript
javascript判断chrome浏览器的方法
2014/03/26 Javascript
Javascript让DEDECMS告别手写Tag
2014/09/01 Javascript
Mac OS X 系统下安装和部署Egret引擎开发环境
2014/09/03 Javascript
JS来动态的修改url实现对url的增删查改
2014/09/05 Javascript
jquery ui resize 中border-box的bug修正
2015/04/26 Javascript
移动Web中图片自适应的两种JavaScript解决方法
2015/06/18 Javascript
JS工作中的小贴士之”闭包“与事件委托的”阻止冒泡“
2016/06/16 Javascript
JS简单获取及显示当前时间的方法
2016/08/03 Javascript
基于node搭建服务器,写接口,调接口,跨域的实例
2018/05/13 Javascript
如何在vue里面优雅的解决跨域(路由冲突问题)
2019/01/20 Javascript
如何为你的JS项目添加智能提示与类型检查详解
2019/03/12 Javascript
微信小程序Echarts图表组件使用方法详解
2019/06/25 Javascript
Vue中使用Lodop插件实现打印功能的简单方法
2019/12/19 Javascript
Vue中正确使用Element-UI组件的方法实例
2020/10/13 Javascript
Python常用列表数据结构小结
2014/08/06 Python
在ironpython中利用装饰器执行SQL操作的例子
2015/05/02 Python
Python中的ceil()方法使用教程
2015/05/14 Python
python多个模块py文件的数据共享实例
2019/01/11 Python
Python循环结构的应用场景详解
2019/07/11 Python
python使用PIL和matplotlib获取图片像素点并合并解析
2019/09/10 Python
python重要函数eval多种用法解析
2020/01/14 Python
Keras构建神经网络踩坑(解决model.predict预测值全为0.0的问题)
2020/07/07 Python
shell变量的作用空间是什么
2013/08/17 面试题
护理学毕业生自荐信
2013/10/02 职场文书
一年级下册数学教学反思
2016/02/16 职场文书
用javascript制作qq注册动态页面
2021/04/14 Javascript
golang http使用踩过的坑与填坑指南
2021/04/27 Golang