学习爬虫第一天笔记

第二章:BeautifulSoup的使用
下行遍历:
.contents:子节点的列表
.children:子节点的迭代类型,循环遍历儿子节点。
.descendants:子孙节点的迭代类型,循环遍历子孙节点
上行遍历:
.parent:节点的父亲标签
.parents:节点的先辈标签的迭代类型,用于循环遍历先辈节点
平行遍历:
.next_sibing:返回以HTML顺序的下一个平行节点
.previous_sibing:返回以HTML顺序的上一个平行节点
.next_sibings:迭代类型,返回按HTML顺序的后续所有平行节点
.previous_sibings:迭代类型,返回按HTML顺序的前序所有平行节点
可以使用find()方法

prettify()方法:格式化输出HTML

信息表记:xml、json、yaml
xml:
有内容时: content
无内容时:
注 释:
json: 有类型的键值对表达形式"key":“value”,数字不用"",程序对接口处理

一键多值:
key:[name1,name2]

键值嵌套:
key:{
	key:value1,
	key:values2		
       }

yaml:无类型键值对key:value,通过缩进表达所属关系,适用于系统配置文件
key:
-name1
-name2

key:| #注释
文本

key:
    subkey:value

信息提取的一般方法:
1.完整接卸信息标记形式,再提取关键信息,xml、json、yaml、bs4库
2.无视标记形式,直接搜索关键字
3.融合方法
基于bs4的html查找方法:
<>.find_all(name,attrs,recursive,string,**kwargs)—>查找HTML的标签
name:对标签名称的检索字符串
attrs:对属性值的检索
recursive:是否对子孙全部索引,默认为True
string:<>…</>中字符串区域的检索字符串
<>.find_all(…)=<>(…)
soup(…)=soup.find_all(…)

大学排名获取程序设计:
1.爬取网页 getHTMLText()
2.提取信息 fillUnivList()
3.展示结果printUnivList()
源码:https://blog.youkuaiyun.com/weixin_43576564/article/details/103291104

第三章正则表达式
(1).正则表达式的操作符:
1.".":表示任意字符
2."*":前一个字符的0次或n次
3."?":前一个字符的0次或1次
4."+":前一个字符的1次或多次
5. ():括号内为一个整体,内部只能使用"|"
6. []:对单个字符的取值范围的限定
7.[^]:单字符排除[]内的字符
8."|":左右表达式的任意一个
9.{m}:扩展前一个字符m次
10.{m,n}:扩展前一个字符m到n次
11."^":匹配字符串开头
12."$":匹配字符串结尾
13.\d :只匹配数字 ==[0-9]
14.\w :只匹配单词字符 ==[a-zA-Z0-9_]
匹配中文:[\u4e00-\u9fa5]
匹配电话号码:\d{3}-\d{8}|\d{4}-\d{7}
匹配ip地址:(([0-9]?\d|1\d{2}|2[0-4]\d|25[0-5]).){3}([0-9]?\d|1\d{2}|2[0-4]\d|25[0-5])
raw-string:不含转义字符的表达式,若正则中包含"“时,使用r’'的形式
re函数:
1.re.match(): 1.正则、2.待匹配字符串、3.参数(1.re.I:忽略大小写,2.re.M:将字符串的每一行作为头部匹配、3.re.S:”.“将匹配所有字符),返回match对象,读取采用” match.group()"的方式
2.re.search():同match,search从字符串任意位置开始匹配
3.re.findall():1.正则、2.待匹配字符串、3.控制标记 re.I\re.M\re.S
4.re.split():1.正则、2.字符 串、3.maxplit最大分割数、4.控制标记,返回list类型
5.finditer():返回迭代类型,每个迭代类型为match对象
6.re.sub():1.正则、2.替换字符串、3.源字符串、4.匹配的最大替换次数、5.flag标记。返回替换后的字符串
2.函数式用
3.面向对象法使用:
例:
r=re.complit(r’[0-9]\d{5}’)
rst=re.search(“but 291723”)
一次编译,多次使用,加速程序运行
4.match对象的属性:
1. .string:待匹配的文本
2. .re:匹配时使用的pattern对象(正则表达式)
3. .pos:正则表达式搜索文本的开始位置
4. .endpos:正则表达式搜索文本的结束位置
5.match对象的方法:
1. .group(0):获取匹配后的字符串
2. .start():匹配字符串在源字符串的开始位置
3. .end():匹配字符串在源字符串的结束位置
4. .span():返回元组类型,返回(.start(),.end())
6.贪婪模式:
默认方式,返回最长匹配
例:
match=re.search(r’py.*n’,‘pyanbncndn’) 贪婪模式返回:match.group(0)返回: “pyanbncndn”
>>> match=re.search(r’py.*n’,‘pyanbncndn’)
>>> match.group(0)
‘pyanbncndn’
7.最小匹配:
最小匹配操作符:
1.
2. +?
3. ??
4. {m,n}?
例:
>>> match=re.search(r’py.
?n’,‘pyanbncndn’)
>>> match.group(0)
‘pyan’
8.淘宝商品获取:未完成
9.股票爬取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值