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基于scrapy采集数据时使用代理服务器的方法
Apr 16 Python
python中map()与zip()操作方法
Feb 27 Python
python利用urllib实现爬取京东网站商品图片的爬虫实例
Aug 24 Python
python使用 HTMLTestRunner.py生成测试报告
Oct 20 Python
Python matplotlib画图实例之绘制拥有彩条的图表
Dec 28 Python
Django模板Templates使用方法详解
Jul 19 Python
Python定时任务APScheduler的实例实例详解
Jul 22 Python
Django时区详解
Jul 24 Python
django框架单表操作之增删改实例分析
Dec 16 Python
Numpy 理解ndarray对象的示例代码
Apr 03 Python
Python如何截图保存的三种方法(小结)
Sep 01 Python
Pytorch模型迁移和迁移学习,导入部分模型参数的操作
Mar 03 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类常量用法实例分析
2015/07/09 PHP
php用正则判断是否为数字的方法
2016/03/25 PHP
几行代码轻松实现PHP文件打包下载zip
2017/03/01 PHP
php和redis实现秒杀活动的流程
2019/07/17 PHP
PHP7创建销毁session的实例方法
2020/02/03 PHP
JavaScript转换农历类实现及调用方法
2013/01/27 Javascript
Node.js中调用mysql存储过程示例
2014/12/20 Javascript
JavaScript获取页面上被选中文字的方法技巧
2015/03/13 Javascript
js实现每日自动换一张图片的方法
2015/05/04 Javascript
BootStrap响应式导航条实例介绍
2016/05/06 Javascript
全面了解函数声明与函数表达式、变量提升
2016/08/09 Javascript
Node.js中看JavaScript的引用
2017/04/22 Javascript
详解vue2 $watch要注意的问题
2017/09/08 Javascript
完美解决axios跨域请求出错的问题
2018/02/05 Javascript
vue-vuex中使用commit提交mutation来修改state的方法详解
2018/09/16 Javascript
微信小程序实现上传word、txt、Excel、PPT等文件功能
2019/05/23 Javascript
JavaScript单线程和任务队列原理解析
2020/02/04 Javascript
vue中activated的用法
2021/01/03 Vue.js
[03:05]《我与DAC》之xiao8:DAC与BG
2018/03/27 DOTA
Python黑魔法@property装饰器的使用技巧解析
2016/06/16 Python
微信跳一跳python辅助软件思路及图像识别源码解析
2018/01/04 Python
Python利用pandas处理Excel数据的应用详解
2019/06/18 Python
Python企业编码生成系统总体系统设计概述
2019/07/26 Python
python实现跨excel sheet复制代码实例
2020/03/03 Python
解决pymysql cursor.fetchall() 获取不到数据的问题
2020/05/15 Python
opencv 查找连通区域 最大面积实例
2020/06/04 Python
解决Keyerror ''acc'' KeyError: ''val_acc''问题
2020/06/18 Python
帕克纽约:PARKER NY
2018/12/09 全球购物
销售找工作求职信
2013/12/20 职场文书
学校门卫管理制度
2014/01/30 职场文书
新春寄语大全
2014/04/09 职场文书
2015秋季开学典礼主持词
2015/07/16 职场文书
2015年小学体育教师工作总结
2015/10/23 职场文书
Python干货实战之八音符酱小游戏全过程详解
2021/10/24 Python
Win11黑色桌面背景怎么办?Win11黑色壁纸解决方法汇总
2022/04/05 数码科技
详解Flutter网络请求Dio库的使用及封装
2022/04/14 Java/Android