python 爬虫总结

article/2025/11/8 10:35:41

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

http://chatgpt.dhexx.cn/article/720QsVCk.shtml

相关文章

Python爬虫介绍

一、什么是爬虫 爬虫:一段自动抓取互联网信息的程序,从互联网上抓取对于我们有价值的信息 二、Python爬虫架构 Python爬虫架构主要由五个部分组成,分别是调度器、URL管理器、网页下载器、网页解析器、应用程序(爬取的有价值数据…

Python实用技术——爬虫(一):爬虫基础

目录 爬虫这门技术本身是不违法的,但是应该注意: 1,爬取什么数据 2,如何爬取得来的 3,爬取之后如何使用 二,HTTP协议 1,万维网 2,协议: 三,HTTP知识 …

Python爬虫讲解(超详细)

Python爬虫是一种通过编写程序自动从互联网上获取数据的技术。下面是Python爬虫的详解: 爬虫的基本原理 爬虫的基本原理是**通过模拟浏览器的行为**,访问目标网站,并获取目标页面中的数据。Python爬虫可以使用requests库来发送HTTP请求&…

python爬虫技术整理

Python爬虫——新闻热点爬取 显示更多 可以看到相关的数据接口,里面有新闻标题以及新闻详情的url地址 如何提取url地址 1、转成json,键值对取值; 2、用正则表达式匹配url地址;根据接口数据链接中的pager 变化进行翻页&#xf…

Pytorch创建多任务学习模型

在机器学习中,我们通常致力于针对单个任务,也就是优化单个指标。但是多任务学习(MTL)在机器学习的许多应用中都取得了成功,从自然语言处理和语音识别到计算机视觉和药物发现。 MTL最著名的例子可能是特斯拉的自动驾驶系统。在自动驾驶中需要…

多任务学习 Pytorch实现

多任务学习MTL的简单实现,主要是为了理解MTL 代码写得挺烂的,有时间回来整理一下 import torch import torch.nn as nn import torchvision import torchvision.transforms as transforms import numpy as np import matplotlib.pyplot as plt import ma…

【综述】多任务学习

前言 本文对多任务学习(multi-task learning, MTL)领域近期的综述文章进行整理,从模型结构和训练过程两个层面回顾了其发展变化,旨在提供一份 MTL 入门指南,帮助大家快速了解多任务学习的进化史。 1. 什么是多任务学习? 多任务学习…

多任务学习原理与优化

文章目录 一、什么是多任务学习二、为什么我们需要多任务学习三、多任务学习模型演进Hard shared bottom 硬共享Soft shared bottom 软共享软共享: MOE & MMOE软共享: CGC & PLE加入FMMMOE/PLE 的调参ESMM 四、 loss权重1, 利用任务的…

【多任务学习-Multitask Learning概述】

多任务学习-Multitask Learning概述 1.单任务学习VS多任务学习多任务学习的提出多任务学习和单任务学习对比 2.多任务学习共享表示shared representation:多任务学习的优点那么如何衡量两个任务是否相关呢? 当任务之间相关性弱多任务MLP特点总结多任务学…

多任务学习(Multi-Task Learning, MTL)

目录 [显示] 1 背景2 什么是多任务学习?3 多任务学习如何发挥作用? 3.1 提高泛化能力的潜在原因3.2 多任务学习机制3.3 后向传播多任务学习如何发现任务是相关的4 多任务学习可被广泛应用? 4.1 使用未来预测现在4.2 多种表示和度量4.3 时间序…

Tensorflow 多任务学习

之前在caffe上实现了两个标签的多任务学习,如今换到了tensorflow,也想尝试一下,总的来说也不是很复杂。 建立多任务图 多任务的一个特点是单个tensor输入(X),多个输出(Y_1,Y_2...)。因此在定义占位符时要定义多个输出。同样也需要…

多任务学习:Multi-Task Learning as Multi-Objective Optimization

前言 最近在写一篇文章,是一篇深度学习与安全相结合的文章,模型的输出会交给两个损失函数(availability & security)进行损失计算,进而反向传播。起初的想法是直接将两项损失进行加权平均,共同进行反向…

深度学习中的多任务学习(一)

任务学习-Multitask Learning概述 Reference https://blog.csdn.net/u010417185/article/details/83065506 1、单任务学习VS多任务学习 单任务学习:一次只学习一个任务(task),大部分的机器学习任务都属于单任务学习。多任务学习…

C# 多线程八 任务Task的简单理解与运用二

目录 一.Task 1.AsyncState 2.CompletedTask 3.CreationOptions 4.CurrentId 5.Exception 6.Factory 7.Id 8.IsCanceled 9.IsCompleted 10.IsFaulted 11.Status 二.Task<TResult> 1.Result 上篇&#xff1a; C#…

多任务学习(一)

多任务学习 单任务学习 样本之间没有关联性。 缺点&#xff1a;训练出来的模型不具有泛化性&#xff1b;不共享信息使得学习能力下降。 多任务学习 多任务学习的构建原则 建模任务之间的相关性同时对多个任务的模型参数进行联合学习&#xff0c;挖掘其中的共享信息&#…

多任务学习-Multitask Learning概述

2020-02-22 09:59:48 1、单任务学习VS多任务学习 单任务学习&#xff1a;一次只学习一个任务&#xff08;task&#xff09;&#xff0c;大部分的机器学习任务都属于单任务学习。 多任务学习&#xff1a;把多个相关&#xff08;related&#xff09;的任务放在一起学习&#x…

深度学习之----多任务学习

介绍 在机器学习&#xff08;ML&#xff09;中&#xff0c;通常的关注点是对特定度量进行优化&#xff0c;度量有很多种&#xff0c;例如特定基准或商业 KPI 的分数。为了做到这一点&#xff0c;我们通常训练一个模型或模型组合来执行目标任务。然后&#xff0c;我们微调这些模…

深度学习中的多任务学习介绍

在2017年有一篇关于在深度神经网络中多任务学习概述的论文&#xff1a;《An Overview of Multi-Task Learning in Deep Neural Networks》&#xff0c;论文链接为&#xff1a;https://arxiv.org/pdf/1706.05098.pdf&#xff0c;它介绍了在深度学习中多任务学习(Multi-task Lear…

C# 多线程七 任务Task的简单理解与运用一

目录 一.Task 二.Task中的全局队列和本地队列 三.TaskCreationOptions 枚举 四.CancellationTokenSource/CancellationToken 1.延时取消线程 2.立即取消&#xff1a; 五.Task的三种调用方式 为了防止大家被标题误导 写在前面&#xff1a; Task并不是线程 Task的执行需要…

整理学习之多任务学习

如果有n个任务&#xff08;传统的深度学习方法旨在使用一种特定模型仅解决一项任务&#xff09;&#xff0c;而这n个任务或它们的一个子集彼此相关但不完全相同&#xff0c;则称为多任务学习&#xff08;MTL&#xff09; 通过使用所有n个任务中包含的知识&#xff0c;将有助于改…