【爬虫学习】BeautifulSoup 学习心得
来源:互联网 发布:罗伊马斯坦 知乎 编辑:程序博客网 时间:2024/04/29 16:09
最近在根据教程学习网络爬虫,如何从真实网页中获得信息,虽然之前也写过一些爬虫,但是始终没有经过科班培训,这次算是正式学习吧,同时记录一些心得体会
上图是一个简单的网页解析代码,同时可以作为学习beautifulsoup库的样本
soup.select方法:
1、使用的是CSS selector路径,不是xpath路径(可用于Scrapy)
2、例如titles中,如果想要依靠标签中有某个属性来实现筛选,则在CSS selector中修改为 标签[属性],例如:a[target="_blank"]
同样,对于imgs中,使用宽度=160这个属性,进行图片的筛选
3、在cates(类别信息)中,一个标题下有多个类别,则可以通过选择父节点(p13n_reasoning_v2)标签(位置信息)来获得所有信息
4、在复杂网页中,往往CCS Selector路径很长,其实并不必要,只要能找到唯一的标签来定位该元素即可,例如<a class = "time"> 这时搜索.time如果唯一,则可以使用soup.selcet('a.time')来获得内容
如果审查内容为< id = "content">后边有<span class = 'price'> 且搜索唯一,则可是用soup.select('#content span.price')
也就是说 # 代表 id . 代表 class
5、学到一种字典解析方式,后边加上一个if判断句
6、除了利用soup.select方法外,还可以利用soup.title.text方法,如果浏览网页的标题在浏览器的标签页上的话,这是最简单的实现方法
soup.find_all方法
图2 41行中,span为标签,c_25d是class,这样找到所有的这种样式的内容
soup解析内容时候
1、常用的是get_text()方法
2、获得连接信息,则利用get方法,参数为具体链接的标签,例如img.get('src')
3、对于多个信息,利用stripper_strings方法来得到
小技巧
1、学会好的展示方法,将数据整理为一个字典,利用zip函数
2、在爬取连续多个页面的网页时,可以“列表解析式”构造网址
例如:url = ['www.****{}.com'.format(str(i)) for i in range(1,100,3)]
3、使用headers={'User-Agent':' '
'Cookie':' '}来模拟人类登陆
4、为了反爬虫,可以爬取手机(移动端)页面
- 【爬虫学习】BeautifulSoup 学习心得
- python beautifulsoup 爬虫学习
- 【爬虫学习】MongoDB 学习心得
- 爬虫:BeautifulSoup
- BeautifulSoup 爬虫
- BeautifulSoup爬虫
- BeautifulSoup 爬虫
- Python 网页爬虫-BeautifulSoup库的学习
- urllib/urllib2和BeautifulSoup爬虫学习
- Python爬虫库学习笔记-BeautifulSoup
- python 网络爬虫学习笔记之beautifulsoup
- 【爬虫学习】数据绘成图表学习心得
- 【爬虫之路】一点有关学习BeautifulSoup的笔记
- Python爬虫包 BeautifulSoup 学习(一) 简介与安装
- Python爬虫包 BeautifulSoup 学习(二) 异常处理
- Python爬虫包 BeautifulSoup 学习(三) 实例
- Python爬虫包 BeautifulSoup 学习(五) 实例
- Python爬虫包 BeautifulSoup 学习(六) 递归抓取
- bzoj 4631: 踩气球(线段树)
- Spring boot 企业微信点餐系统(项目实战)
- POJ3107-God father(树形dp??)
- Android内涵段子评论无限点赞分析与刷赞App[已和谐]
- sqlserver中grouping()函数的用法
- 【爬虫学习】BeautifulSoup 学习心得
- 神奇的MySql连接错误
- oracle中rownum和row_number()的区别
- 深浅拷贝
- c++设计模式之单例模式
- Nginx的安装
- delphi监控windows远程控制消息
- 为什么读了很多书,却学不到什么东西?
- #Thinking in Java阅读笔记# 第五章 初始化与清理