python爬虫基础知识之选择器

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可以动态调动模拟浏览器

猜你喜欢

转载自blog.csdn.net/ElsaRememberAllBug/article/details/78783572