数据提取方法
json
-
数据交换格式,看起来像python中的(字典)的字符串
-
使用之前进行导包处理
import json
-
哪里会有json的数据
- 浏览器切换到手机版
- 抓包app
-
json.loads
- 把json字符串转化为python类型
json.loads(json字符串)
-
json.dumps
- 把python类型转为为json字符串
json.dumps({})
- json.dumps(ret,ensure_ascii=False,indent=2)
- ensure_ascii:让中文显示为中文
- indent:能够让下一行在上一行的基础上空格
xpath和lxml
-
xpath
- 一门从html中提取数据的语言
-
xpath语法
- xpath helper插件: 帮助我们从
elements
中定位数据 - 选择select下面的复选框的如何跟选
- //select/option[@selected]
- 1.选择节点(标签)
/html/head/meta
:能够选中html下的所有meta标签
- 2.
//
: 能够从任意节点开始选择//li
:当前页面下的所以li标签/html/head///link
: head下的所有link标签
- 3.
@符号的用途
- 选择具体的某一个元素:
//div[@class="zhengwen]
/ul/li- 选择class="zhengwen"div下的ul下的li
a/@href
:选择a标签下的herf的值
- 选择具体的某一个元素:
- 4.获取文本
/a/text()
:获取a标签下的文本/a//text()
: 获取a标签下的所以文本
- 5.点前
./a
: 当前节点下的a标签
- 6."string(.)"
- 获取当前节点下的所有文本
- xpath helper插件: 帮助我们从
-
lxml
- 安装: pip install lxml
- 使用
from lxml import etree element = etree.HTML("html字符串") element.xpath("")
其他知识
- 列表推导式
list_num = [x for x in range(5)] print(list_num) # [0,1,2,3,4]
- 字典推导式
dict_num = {x: x+10 for x in range(5)} print(dict_num) # {0: 10, 1: 11, 2: 12, 3: 13, 4: 14}
- format:
"{}.{}.{}".format(1,2,3)
爬虫的基本
-
1.url
- 知道url地址的规律和总页码数: 构建url地址的列表
- url_list
-
2.发起请求,获取响应
- requests
-
3.提取数据
- 返回json字符串: json模块
- 返回的是html字符串: lxml配合xpath进行使用提取数据
-
4.保存数据