python网络数据采集学习范例—利用CSS爬取网站特定标签,BeautifulSoup函数介绍及子标签
2017-10-05 20:13
846 查看
from urllib.request import urlopen from bs4 import BeautifulSoup html=urlopen('http://www.pythonscraping.com/pages/warandpeace.html') obj=BeautifulSoup(html.read()) namelist=obj.findAll("span",{'class':'green'}) for name in namelist: print(name.get_text())
简介:链接是一个小说内容,其中名字都是绿色标记,对话内容都是红色标记,通过查看网页源代码span标签。.findAll(tagName, tagAttributes)函数可以获取页面中所有指定的标签。.get_text() 会把你正在处理的HTML文档中所有的标签都清除,然后返回一个只包含文字的字符串(也就是我们只要的名字)。
findAll(tag, attributes, recursive, text, limit, keywords) find(tag, attributes, recursive, text, keywords)递归参数recursive 是一个布尔变量,如果recursive 设置为True,findAll 就会根据你的要求去查找标签参数的所有子标签,以及子标签的子标签.
文本参数text 是用标签的文本内容去匹配,而不是用标签的属性,如:nameList = bsObj.findAll(text="the prince")。
范围限制参数limit,显然只用于findAll 方法。find 其实等价于findAll 的limit 等于1 时的情形。
导航树:通过标签在文档中的位置来查找标签。
实例:
html=urlopen('http://www.pythonscraping.com/pages/page3.html') obj=BeautifulSoup(html,"html.parser")
如果你只想找出子标签,可以用.children 标签:for child in bsObj.find("table",{"id":"giftList"}).children:
处理兄弟标签:.next_siblings,可以选择表格中除了标题行以外的所有行:for sibling in bsObj.find("table",{"id":"giftList"}).tr.next_siblings: #.tr是获得标题第一行,即标题行。
.previous_siblings返回最后一个标签。、
父标签:parent 和parents
print(bsObj.find("img",{"src":"../img/gifts/img1.jpg"}).parent.previous_sibling.get_text()),打印图片对应的价格。
相关文章推荐
- python爬虫(1)利用BeautifulSoup进行网络数据采集
- python网络数据采集学习范例-通过互联网采集
- 数据可视化 三步走(一):数据采集与存储,利用python爬虫框架scrapy爬取网络数据并存储
- python网络数据采集学习笔记:第二章
- python网络数据学习范例-正则表达式+lambda函数
- python网络数据采集实例-在一个网站上随机地从一个链接跳到另一个链接&采集整个网站
- Python网络数据采集——BeautifulSoup
- Python网络数据采集学习笔记1
- Python网络数据采集13:用爬虫测试网站
- 『python学习』python 网络数据采集笔记
- python网络数据采集学习笔记-前言
- Python ORM框架SQLAlchemy学习笔记之数据添加和事务回滚介绍
- 利用python采集分析人人网社交网络数据
- 在Python中利用Pandas库处理大数据的简单介绍
- 利用python采集分析糗事百科数据
- [Python学习] 简单网络爬虫抓取博客文章及思想介绍
- [Python学习] 简单网络爬虫抓取博客文章及思想介绍
- 网络设备发送队列相关数据结构及其创建函数 (linux网络子系统学习 第十节 )
- 网页数据采集:[3]python如何利用抓包数据
- Python学习入门基础教程(learning Python)--8.3 字典常用的方法函数介绍