python爬虫基础知识之选择器

本文介绍了Python爬虫中选择器的基础知识,包括CSS选择器、XPath以及它们的区别。同时讲解了XML处理的DOM和SAX模式的优劣,并通过实例展示了如何使用DOM和SAX处理XML。此外,还提及了正则表达式在爬虫中的应用以及Selenium库在处理动态网页上的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1          选择器

ID

1.1         Class

属性选择器:可以指定值来选择

后代选择器(包含选择器)

子选择器

 

 

1.2         Xpath

使用路径表达式在xml中进行导航

 

 

1.3         Xpath和css的区别:

Css更简洁

Xpath文件路径,看作目录树

XPath谓语很强大

 

 

1.4         Json

类似xml,但是更小更简洁

很方便,把字符串和字典来回切换

 

2          Xml处理的两种模式dom和sax的优劣

Dom把整个xml读入内存,解析为树,占用内存大, 解析慢

Sax流模式,边读边解析,占用内存小,解析快

Xml处理爬虫的三个重要内容:标签,属性,内容,处理方式主要是dom和sax

 

3          Xml—xpath—dom/sax

3.1         通过dom处理

小文本,处理的方便

#获取根节点

doc=minidom.parse('book.xml')

root=doc.documentElement

print(type(root))

print(dir(root))

print(root.nodeName)

books=root.getElementsByTagName('book')

for book in books:

 titles=book.getElementsByTagName('title')

 prices=book.getElementsByTagName('price')

 title=titles[0].childNodes[0].nodeValue

 price=prices[0].childNodes[0].nodeValue

 print(title,price)


3.2         Sax爬虫

自己维护层级关系

处理大文本效率很高

一开始写DefaultSaxHandler

实现三个方法:start_element, end_element,char_data

 

4          正则表达式

方便的检查一个字符串是否与某种模式匹配

re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。

函数语法:

re.match(pattern, string, flags=0)

 

5          selenium

主要用于测试,简单的爬虫比较合适

用于爬虫的两个命令:find_element(s)_by_tag_name

Find_element(s)_by_css_selector

如果直接用request,不能处理js,也就是不能处理动态网页,而selenium可以动态调动模拟浏览器

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值