IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> python 爬虫总结 -> 正文阅读

[网络协议]python 爬虫总结

requests模块

import reqeusts
# get 请求
# 网址
url_login = "url://123.com"

# 请求头
headers = {
        'User-Agent': 'Apipost client Runtime/+https://www.apipost.cn/'
}

# 参数,形式字典
kw = {key:value}
response = reqeusts.get(url=url_login,params=kw)

# post 请求
esponse = reqeusts.post(url=url_login)

# 使用代理
proxies的形式:字典
proxies = {
    "http": "http://代理地址1",
    "https": "http://代理地址2"
}

# 用法
reqeusts.get("http://www.baidu.com",proxies=proxies)

# 使用session
# 实例化一个session对象
# 使用该对象发送get或post请求
session = reqeusts.session()
response = session.get(url,headers=headers)
# 后续使用session请求url会自动携带session完成访问

# 把cookie对象转化为字典
reqeusts.util.dict_from_cookiejar
# 请求ssl证书验证
response = reqeusts.get(url="https://url_login",verify=False)
# 设置请求超时
response = reqeusts.get(url,timeout=10)
# 配合状态码判断是否请求成功(断言)
assert response.status_code == 200

对象.名词 --- 属性

对象.动词 --- 方法

response.text

  • 类型 :str
  • 修改编码方式:response.encoding="gbk"
  • 多用于文本

response.content

  • 类型:bytes
  • 修改编码方式:response.content.deocde("utf-8")
  • 多用于图片等二进制文件保存

数据分类

非结构化数据:html

处理方法: 正则表达式、 xpath

结构化数据:json、xml等

处理方法:转化为python数据类型

json 模块

import json

json中的字符串都是双引号引起来的

如果不是双引号:?

? ? ? ? eval:能实现字符串和python类型的转化

? ? ? ? replace: 把单引号替换为双引号

?正则表达式

用事先定义好的一些特殊字符,及这些特定字符的组合,组成一个"规则字符串",这个"规则字符串"用来表达对字符串的一种过滤逻辑

常用正则的方法:

  • re.complie(编译)
  • pattern.match(从头找一个)
  • pattern.search(找一个)
  • pattern.findall(找所有)
  • pattern.sub(替换)

?原始字符串r,字符串中有\带来的转义效果,r能忽视反斜杠

点号默认情况下匹配不到"\n"

"\s" 能够匹配空白字符,不仅能包含空格,还有"\t|\r|\n"

贪婪(.*)非贪婪(.*?)?

xml

?xpath节点选择

?语法

?

?

?

?

?

?lxml使用注意点

lxml补不全功能会使程序出现错误,使用etree.tostring观察html文件样子 完成校验。

lxml可以接受bytes和str字符串

提取页面数据的思路

? ? ? ? 先分组,

? ? ? ? 在遍历每一个分组取其中数据

爬虫的工作流程

搜索引擎流程

抓取网页-> 数据存储-> 预处理 -> 提供检索服务,网站排名

聚焦爬虫流程

url list? -> 响应内容 - > 提取数据 -> 入库

? ? ? /\? ? ? ? ? ? ? ?|

? ? ? |? ? ? ?-? ? ?提取url

需要爬取的数据位置:

  • 当前url地址对应的响应中
  • 其他的url地址对应的响应中(ajax请求中)
  • js生成的(部分数据在响应中,或者全部数据由js生成)

格式化字符串

print("hello %s" % "小明")

print("hello {}".fromat("小明"))

列表推导式

# 生成列表
[i for i in range(3)]
# 生成列表时增加判断
[i + 3 for i in range(3) if i%2==0]

cookie和session

  • cookie 数据存放在客户的浏览器上,session数据存放在服务器上
  • cookie不是很安全,可以对cookie进行分析进行cookie欺骗
  • session会在一定时间内保存在服务器上,当访问增多,会占用服务器资源。
  • 单个cookie保存的数据不能超过4K,浏览器限制一个站点最多保存20个cookie
  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-05-09 13:06:47  更:2022-05-09 13:07:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 10:04:21-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码