python爬虫基础知识
1. xpath和lxml
-
xpath
- 一门从html中提取数据的语言
-
xpath语法
- xpath helper插件:帮助我们从
elements
中定位数据 -
- 选择节点(标签)
/html/head/meta
:能够选中html下的head下的所有的meta标签
-
//
:能够从任意节点开始选择
//li
:当前页面上的所有的li标签/html/head//link
:head下的所有的link标签
-
@符号的用途
- 选择具体某个元素:
//div[@class='feed']/ul/li
- 选择class='feed’的div下的ul下的li
a/@href
:选择a的href的值
-
- 获取文本:
/a/text()
:获取a下的文本/a//text()
:获取a下的所有的文本(比如a标签里面嵌套了span标签,就可以获取span元素的文本)
-
- 点前
./a
当前节点下的a标签
- xpath helper插件:帮助我们从
-
lxml
- 安装:pip install lxml
- 使用
from lxml import etree element = etree.HTML("html字符串") element.xpath("")
2. 基础知识点的学习
- format:字符串格式化的一种方式,占位符。
"博主{}博主".format(1) "博主{}博主".format([1,2,3]) "博主{}博主".format({1,2,3}) "博主{}博主{}".format({1,2,3},[1,23,2]) "博主{}博主{}}".format({1,2,3},1)
- 列表推导式
- 帮助我们快速的生成包含一堆数据的列表
[i+10 for i in range(10)]
—>[10,11,12,…19]
["10月{}日".format(i) for i in range(1,10)]
-->[“10月1日”,“10月2日”,…“10月9日”]
- 帮助我们快速的生成包含一堆数据的列表
- 字典推导式
- 帮助我们快速的生成包含一堆数据的字典
{i+10:i for i in range(10)} #{10:0,11:1,12:2...19:9}
{"a{}".format(i):10 for i in range(3)}#{"a0":10,"a1":10,"a2":10}
- 三元运算符
- if 后面的条件成立,就把if前面的结果赋值给a,否则把else后面的结果赋值给a
a = 10 if 4>3 else 20 # a = 10
a = 10 if 4<3 else 20 # a =20