【教程】BeautifulSoup中使用正则表达式去搜索多种可能的关键字

转载 2015年07月08日 16:43:10

【背景】

折腾过基本的BeautifulSoup的人,知道,可以通过指定对应的name和attrs去搜索,特定的名字和属性,以找到所需要的部分的html代码。

但是,有时候,会遇到,对于要处理的内容中,其name或attr的值,有多种可能,尤其是符合某一规律,此时,就无法写成固定的值了。

所以,就可以借助正则表达式来解决此问题。

【举例说明】

比如,原先教程:

【教程】Python中第三方的用于解析HTML的库:BeautifulSoup

中的html:

<div class="icon_col">
        <h1 class="h1user">crifan</h1>
</div>

对应的BeautifulSoup代码如下:

h1userSoup = soup.find(name="h1", attrs={"class":"h1user"});

而如果html是这种:

<div class="icon_col">
        <h1 class="h1user">crifan</h1>
        <h1 class="h1user test1">crifan 123</h1>
        <h1 class="h1user test2">crifan 456</h1>
</div>

那么想要一次性地找到所有的,符合条件的h1的部分的代码,则之前的写法,就只能找到单个的class="h1user"的部分,剩下的两个

class="h1user test1"

class="h1user test2"

就找不到了。

那么,此时,就可以用到,BeautifulSoup中非常好用的,非常强大的功能:

attrs中支持正则表达式的写法

了。

就可以写成:

h1userSoupList = soup.findAll(name="h1", attrs={"class":re.compile(r"h1user(\s\w+)?")});

就可以一次性地,找到:

class="h1user"

class="h1user test1"

class="h1user test2"

了。

 

相关文章推荐

Python爬虫包 BeautifulSoup 学习(九) 正则表达式与Lambda表达式

本文使用的HTML在文章的最后,经过了一些简化,源文件在链接。正则表达式正则表达式的用法可以查看之前的文章,一般来说如果用python自带的urllib、urllib2库写爬虫的基本都会用到大量的正则...

BeautifulSoup中使用正则表达式re

在学习BeautifulSoup过程中,我们肯定都遇到过这种情况,我们在查找某些具有特殊格式的标签时候 头疼,举例说一下:我现在要去爬取www.baidu.com首页中的链接并且输出。在爬取的过程中你...

git pull fetch 更新本地文件区别

http://my.oschina.net/xinxingegeya/blog/496278 Git中pull对比fetch和merge 使用git fetch和git pull都可以...

Python爬虫——利用PhantomJS下载动态加载图片

Python爬虫——利用PhantomJS下载动态加载图片

使用selenium+BeautifulSoup+正则表达式下载公众号我要whatyouneed文章里的音乐

其实我本来是想着只用BeautifulSoup去实现的,在获取到音乐的url我在想音乐的文件名很重要,不然下载下来觉得动听但是却要听歌识曲的话就毫无意义了。 我上网查了一下搜狗可以查某个公众号的文章...

Mysql中使用正则表达式搜索——关键字REGEXP(., |, [], ^, $, \\)

正则表达式用来匹配文本的特殊的串(字符集)。 1、检索列prod_name中包含文本1000的所有行: mysql> SELECT prod_name FROM products WHERE prod...

python爬虫里信息提取的核心方法: Beautifulsoup、Xpath和正则表达式

20170531 这几天重新拾起了爬虫,算起来有将近5个月不碰python爬虫了。 对照着网上的程序和自己以前写的抓图的程序进行了重写,发现了很多问题。总结和归纳和提高学习效果的有效手段,...

python3.5——爬虫实现批量下载图片(正则表达式法和BeautifulSoup第三方库法)

先来例程: 正则表达式法:(不推荐) # -*- coding: utf-8 -*- """ Created on Thu Jun 1 16:22:10 2017 @author: qiu...
  • sqiu_11
  • sqiu_11
  • 2017年06月04日 23:15
  • 1028

使用ICU库中正则表达式匹配关键字示例

#include //#include "unicode/unistr.h" //#include #include #include ifdef _DEBUG #ifdef linux ...

使用正则表达式对文章关键字做高亮度显示

test3_2 #content { width: 700px; height: auto; margin: 20px auto; border: 1px ...
  • wazqw
  • wazqw
  • 2016年08月26日 10:35
  • 75
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【教程】BeautifulSoup中使用正则表达式去搜索多种可能的关键字
举报原因:
原因补充:

(最多只允许输入30个字)