每日一骚:
第一想问题要有目的性,紧紧盯着目标,如果没目标先想清楚目标,记不住就写下来。
第二把简单的东西,说清楚作用和用法。
第三把复杂的东西,原理说清楚 用法记清楚。概括地说清给别人,具体的步骤你自己记住就好。
通过玩剧本杀的游戏,我发现自己缺乏概括能力。总是喜欢复制别人的话,接下来我都用我自己的话。
简单来说,概括就是把修辞去掉 把不是核心的东西去掉,让别人听个最主要的大概就好了。
比如说优势就是性能高 功能丰富,这就够了,不要啰里啰嗦一大堆。
——————————————————————————————————————————————————————
数据爬取的学习目标:
1.学会用python爬数据,包括它的原理和方法
2.学会用LXML Python库来进行Web数据爬取
3.学会用Scrapy进行Web数据爬取(最重点)
4.了解使用PySpider服务进行Web数据爬取
2 3 4三种方法 各有优势
——————————————————————————————————————————————————————
1.安装
pip install lxml
或者anaconda安装
conda install -c anaconda lxml
2.lxml树状结构
(1)lxml是什么
是什么:lxml是python的一个xml解析库,支持HTML和XML的解析,更支持XPath解析方式,效率极高。
优势:比Python自带的xml库性能高、功能丰富,第三方库 lxml 是用 Cython 实现的,可谓爬虫处理网页数据的一件利器。lxml 大部分功能都存在 lxml.etree
中,所以下文都假定已经执行了
from lxml import etree
XPath(XML Path Language):XML路径语言,用于在XML和H搜索TML中信息,它的一切表达式和函数都是为了帮助我们定位想要的节点。
(2)lxml结构介绍
etree:基类树,所有方法几乎都在这个类里。
ElementTree:元素树,可以直接操作元素
Element :元素
先扫盲一下:
字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码。
encode:从unicode变成其他编码
decode:从其他编码解码成unicode
机器用的都是unicode编码,但是传送起来utf-8编码效率更高。pretty_print = True指的是以人类可读的树状结构方式打印
拿到一个网页之后,我们需要把网页字符串转换一下,拿到它的根节点。
可以用etree的这三种方法转换:
(1) html = etree.fromstring("<html>.