BeautifulSoup基础

MarkdownPad Document

BeautifulSoup

findAll函数
nameList = bsObj.findAll("span", {"class":"green"})
for name in namelist:
    print(name.get_text())

#找到所有属性class="green"的span标签,通常在你准备打印、存储和操作数据时,应该最后才使
用 .get_text() 。一般情况下,你应该尽可能地保留 HTML 文档的标签结构。

findAll(tag, attributes, recursive, text, limit, keywords)
find(tag, attributes, recursive, text, keywords)

tag:可以传一个标签名称或者多个标签组成的列表
attributes:用字典封装一个标签的若干属性和对应的属性值
recursive:默认为True,递归查找子标签,设置为False则只查找一级标签
text:用标签的文本内容去匹配,而不是标签的属性
limit:对获取的项进行限制,find就是findall的limit=1
keyword:可以选择那些具有指定属性的标签(由于class在Python中是保留字,而在CSS中是属性名,所以不推荐用keyword)
例如:
allText = bsObj.findAll(id="text")

BeautifulSoup中的对象

  • BeautifulSoup对象——bsobj
  • 标签Tag对象——bsObj.div.h1
  • NavigableString对象——标签里的文字
  • Comment对象——查找HTML文档的注释标签

    bsObj.div.findAll("img") 会找出文档中第一个 div 标签,然后获取这个 div 后
    代里所有的 img 标签列表。

    for child in bsObj.find("table",{"id":"giftList"}).children:
    print(child)     #找table的子标签

    for sibling in bsObj.find("table",{"id":"giftList"}).tr.next_siblings:
    print(sibling)   #找tr后面的兄弟标签

  • nextsiblings与previoussiblings 一组
  • nextsibling与previoussibling 一个
  • parent  找父标签

邮箱正则:  [A-Za-z0-9._+][email protected][A-Za-z]+.(com|org|edu|net)

通过正则表达式匹配内容:
images = bsObj.findAll("img",{"src":re.compile("\.\.\/img\/gifts/img.*\.jpg")})
#都是以 ../img/gifts/img 开头 以 .jpg 结尾
for image in images:
    print(image["src"])

获取属性

  • tag.attrs   得到属性字典
  • imgTag.attrs["src"]   获取图片标签的src属性的值
  • soup.findAll(lambda tag: len(tag.attrs) == 2)
时间: 2024-10-21 12:04:44

BeautifulSoup基础的相关文章

web爬虫讲解—urllib库中使用xpath表达式—BeautifulSoup基础

在urllib中,我们一样可以使用xpath表达式进行信息提取,此时,你需要首先安装lxml模块,然后将网页数据通过lxml下的etree转化为treedata的形式 urllib库中使用xpath表达式 etree.HTML()将获取到的html字符串,转换成树形结构,也就是xpath表达式可以获取的格式 #!/usr/bin/env python # -*- coding:utf8 -*- import urllib.request from lxml import etree #导入htm

Python中xPath技术和BeautifulSoup的使用

xpath基本知识 XPath语法:使用路径表达式来选取XML或HTML文档中的节点或节点集 路径表达式 nodename:表示选取此节点的所有子节点 /    : 表示从根节点选取 //   :选择任意位置的某个节点.            .  :选取当前节点           ..   :选取当前节点的父节点 @   :选取属性    谓语实例 实现效果                                                                 路劲表

爬虫学习1

结构安排 一至十八是第一部分: 十九至二十六是第二部分. 一.大数据时代的挑战 数据抽取.转换.存储 (Data ETL) 原始资料:Raw Data ETL脚本:ETL Scipt 结构化数据:Tidy Data 二.非结构化数据处理与网络爬虫 网页链接器(Web Connector)向目标网页发出请求(request): 目标网页将响应(response)发送给网页链接器(Web Connector): 对收到的响应进行资料剖析(Data Parser),剖析成结构化数据: 将结构化数据存入

Python爬虫学习记录【内附代码、详细步骤】

引言: 昨天在网易云课堂自学了<Python网络爬虫实战>,视频链接 老师讲的很清晰,跟着实践一遍就能掌握爬虫基础了,强烈推荐! 另外,在网上看到一位学友整理的课程记录,非常详细,可以优先参考学习.传送门:请点击 本篇文章是自己同步跟着视频学习的记录,欢迎阅读~~~ 实验:新浪新闻首页爬虫实践 http://news.sina.com.cn/china/ 一.准备 浏览器内建的开发人员工具(以Chrome为例) Python3 requests 库 Python3 BeautifulSoup4

java web 开发三剑客 -------电子书

Internet,人们通常称为因特网,是当今世界上覆盖面最大和应用最广泛的网络.根据英语构词法,Internet是Inter + net,Inter-作为前缀在英语中表示“在一起,交互”,由此可知Internet的目的是让各个net交互.所以,Internet实质上是将世界上各个国家.各个网络运营商的多个网络相互连接构成的一个全球范围内的统一网,使各个网络之间能够相互到达.各个国家和运营商构建网络采用的底层技术和实现可能各不相同,但只要采用统一的上层协议(TCP/IP)就可以通过Internet

python爬虫主要就是五个模块:爬虫启动入口模块,URL管理器存放已经爬虫的URL和待爬虫URL列表,html下载器,html解析器,html输出器 同时可以掌握到urllib2的使用、bs4(BeautifulSoup)页面解析器、re正则表达式、urlparse、python基础知识回顾(set集合操作)等相关内容。

本次python爬虫百步百科,里面详细分析了爬虫的步骤,对每一步代码都有详细的注释说明,可通过本案例掌握python爬虫的特点: 1.爬虫调度入口(crawler_main.py) # coding:utf-8from com.wenhy.crawler_baidu_baike import url_manager, html_downloader, html_parser, html_outputer print "爬虫百度百科调度入口" # 创建爬虫类class SpiderMai

爬虫基础篇-BeautifulSoup解析

安装:Installing Beautiful Soup4?功能:BeautifulSoup用于从HTML和XML文件中提取数据 常用场景:网页爬取数据或文本资源后,对其进行解析,获取所需信息 以下详细的介绍了beautifulsoup的基础用法 1.结构 BeautifulSoup 将html文档转换成树形结构对象,包含:① tag(原html标签,有name和attribute属性)?② NavigableString(包装tag中的字符串,通过string获得字符串)③ Beautiful

Python学习 - 使用BeautifulSoup来解析网页一:基础入门

写技术博客主要就是总结和交流的,如果文章用错,请指正啊! 以前一直在使用SGMLParser,这个太费时间和精力了,现在为了毕业设计,改用BeautifulSoup来实现HTML页面的解析工作的. 一.字符的编码和解码 和网页打交道,首先解决的就是web页面的编码方式,不幸的是不同网站的页面编码方式基本不相同,有的是gb2312,有的是utf-8,有的是gbk,下面是我查看我以后需要的网站源码后得出的web页面的编码方式: di = { 'gb2312':['http://www.sina.co

bs4.BeautifulSoup的基础用法导入

导入模块 from bs4 import BeautifulSoup soup = BeautifulSoup(html_doc,"html.parser") 下面看下常见的用法 print(soup.a) # 拿到soup中的第一个a标签 print(soup.a.name) # 获取a标签的名称 print(soup.a.string) # 获取a标签的文本内容 print(soup.a.text) # 获取a标签的文本内容 print(soup.a["href"