python爬虫简介

news2024/11/24 19:40:21
  • 关于爬虫使用

使用python编写的爬虫脚本(程序)可以完成定时定量,指定目标(Web站点)的数据爬取,主要使用多(单)线程/进程,网络请求库,数据解析,数据存储,任务调度等相关技术。

可以完成接口测试,功能性测试,性能测试和集成测试。

  • 爬虫与web后端服务之间的关系

爬虫使用网络请求库,相当于客户端请求,Web后端服务根据请求响应数据。

https://www.cnblogs.com/lauhp/p/8979393.html

爬虫向Web服务器发起HTTP请求,正确的接受响应数据,然后根据数据类型content-type进行数据解析及存储。

爬虫在发起请求之前,需要伪造浏览器User-Agent指定请求头,然后在向服务器发起请求。

  • 网络请求

常见网络请求库:

  1. urllib/urllib3,
  2. requests,
  3. selenium(UI自动测试,动态js渲染)
  4. appium(手机App的爬虫或UI测试)

数据解析:

  1. re正则
  2. xpath
  3. bs4
  4. json

序列化:把对象转换成字符串或者字节

反序列化:字符串或者字节转换成对象(字典,数组等)

序列化就是为了方便网络间的信息传输,字节码。

数据存储:

  1. pymysql
  2. mongodb

多任务库:

  1. 多线程(threading),线程队列queue
  2. 协程(asynio, gevent / eventlet)

爬虫框架:

  1. scrapy
  2. scrapy-redis(分布式)多机器爬虫

反爬虫策略:

  1. UA策略(user-agent)
  2. 登录限制(cookie)
  3. 请求频次(IP代理)
  4. 验证码(图片-云打码,滑块,文字或图片的选择)
  5. 动态js(Selenium/Splash/api接口)策略

scrapy

  1. request和beautifulsoup都是库,scrapy是框架
  2. scrapy框架中可以加入request和beautifulsoup
  3. scrapy基于twisted,性能是最大的优势
  4. scrapy内置的css和xpath selector非常方便,beautifulsoup(纯python写的)最大的缺点就是慢。

爬虫去重策略:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/448123.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

记一次误用顶层await导致的路由渲染错误

背景:顶层 await Async 异步函数能将 Promise 的链式调用的形式,改为同步的形式,对于编写和阅读代码都非常友好。但一直以来都有一个限制,就是 async 和 await 这两个关键字必须成对出现。这就导致了一个问题,想使用 …

【JavaScript速成之路】一文带你掌握DOM基础

📃个人主页:「小杨」的csdn博客 🔥系列专栏:【JavaScript速成之路】 🐳希望大家多多支持🥰一起进步呀! 文章目录 前言1,Web API简介1.1,初识Web API1.2,Web A…

TryHackMe-Services(Windows域渗透)

Services 认识团队! 今天thm新出的房间,尝尝鲜 端口扫描 循例nmap 把services.local加入hosts Web枚举 发现员工邮箱以及一些员工姓名 从下边的邮箱中,大致可以猜测其他员工账户名跟这个一致的格式 将其保存起来 立足 - AS-REP Roasting…

gin获取url路径参数

package mainimport ("github.com/gin-gonic/gin""net/http" )//获取请求路径的path参数 func main() {r : gin.Default()r.GET("/user/:name/:age", func(c *gin.Context) {//获取路径参数name : c.Param("name")age : c.Param("…

华为云上云实践(一):Windows 环境下对云硬盘 EVS 的创建、挂载和初始化

本文主要讲解华为云云硬盘 EVS 的在 Windows 服务器上创建、挂载及云硬盘初始化等基本操作,快速掌握华为云云硬盘 EVS 操作方法。 文章目录 一、前言二、前期准备:华为云 EVS 采购三、挂载非共享云硬盘 EVS五、初始化云硬盘 EVS 一、前言 华为云 EVS&am…

除了Navicat和DBeaver,还有没有免费又好用的数据库管理工具推荐

最近看到一款数据库Web版工具,SQL Studio,是麦聪软件公司出品的,主打的就是一个,不使用任何的开源代码,产品由中国研发团队100%自主研发。 SQL Studio是一款可创建多个连接的Web版数据库管理开发工具,让你…

RocketMQ的学习历程(二)----MQ基本构架

文章目录 1.MQ的基本要素1.1.消息(Message)1.2.主题(Topic)1.3.标签(Tag)1.4.队列(MessageQueue)1.5.消息标识(MessageId) 2.MQ中的主要角色和相关联系2.1.Pr…

列表、栈、队列

列表(List) 介绍 一系列有序元素的集合。列表中的元素可以是任意类型,允许重复。 可通过索引定位、访问列表中的(单个)元素,还可使用切片(slice)操作一次性访问多个元素&#xff…

LINUX系统SSH连接安装Matlab、添加环境变量、后台运行Matlab脚本

安装Matlab 使用MobaXterm软件SSH连接远程服务器,输入IP、用户名和端口号: 输入密码进入(密码不显示) 网上找一个Matlab安装包(iso镜像)上传进服务器端,或者直接使用wget指令在服务器端下载镜…

Faster RCNN系列4——生成Proposal与RoI

Faster RCNN系列: Faster RCNN系列1——Anchor生成过程 Faster RCNN系列2——RPN的真值与预测值概述 Faster RCNN系列3——RPN的真值详解与损失值计算 Faster RCNN系列4——生成Proposal与RoI Faster RCNN系列5——RoI Pooling与全连接层 一、生成Proposal 生成Pr…

【python中的多进程了解一下?】

基本说明 多进程是指在同一台计算机中同时运行多个独立的进程。每个进程都有自己的地址空间,可用于执行一些特定的任务。这些进程可以同时执行,从而提高了程序的性能和效率。多进程可以在多核计算机上实现真正的并行计算,可以同时运行多个程…

资本观望,大厂入局,海外大模型血脉压制……国内AIGC创业者的机会在哪里?...

图片来源:由无界 AI生成 A股AI概念股直线式拉涨,技术大牛带资进组分分钟成数十亿人民币独角兽,互联网巨头争抢着入局,政府各类扶持政策持续出台,媒体动不动就是万亿风口,500万年薪难招AIGC大牛……2022年以…

57、Yolov8-seg实例分割部署MNN、OpenVINO、OAK,RK3588平台上

基本思想:部署yolov8-seg到mnn、openvino、oak平台上,仅仅做记录 实验模型:链接: https://pan.baidu.com/s/1ilX1YMuhONkisKuGuiqvWw?pwd75ti 提取码: 75ti 一、是用官方模型转onnx首先,然后进行sim一下,是用模型日期2023-04-2…

从120s到2.5s,看看人家的MyBatis批量插入数据优化,那叫一个优雅

最近在压测一批接口,发现接口处理速度慢的有点超出预期,感觉很奇怪,后面定位发现是数据库批量保存这块很慢。 这个项目用的是 mybatis-plus,批量保存直接用的是 mybatis-plus 提供的 saveBatch。 我点进去看了下源码&#xff0c…

入职华为外包一个月后,我离职向“北上广深”流浪了...

这次来聊一个大家可能也比较关心的问题,那就是就业城市选择的问题。而谈到这个问题,就不可避免地会谈到一些关于:机会?技术氛围?跳槽?薪资水平?等等一系列问题。 正好,这也是大家所…

【react全家桶】react-router

本人大二学生一枚&#xff0c;热爱前端&#xff0c;欢迎来交流学习哦&#xff0c;一起来学习吧。 <专栏推荐> &#x1f525;&#xff1a;js专栏 &#x1f525;&#xff1a;vue专栏 &#x1f525;&#xff1a;react专栏 文章目录 11 【react-router】1.准备1.1 SPA1.2 …

搞懂分布式RPC开源框架-gRPC

搞懂分布式RPC开源框架-gRPC rpc解决了什么问题&#xff0c;与消息队列应用场景比较 rpc(远程调用方法):请求回应 socket网络问题 ------> 消除端到端交互问题 业务场景&#xff1a; rpc&#xff1a;同步地处理 消息队列&#xff1a;不紧迫的非必要的 异步解决问题 &#x…

【回眸】又是一年毕业季,怎么利用ChatGPT 4.0 优化毕业论文?

目录 【回眸】又是一年毕业季&#xff0c;怎么利用ChatGPT 4.0 优化毕业论文&#xff1f; 前言 ChatGPT4.0降重提示词&#xff08;3.5表现略逊色一些&#xff0c;不过也可以用这个来作为提示词&#xff09; 举个例子 降重前的原文 构思提示词 确定提问词 选用合适的翻译…

CloudCompare如何进行二次开发?

文章目录 0.引言1.界面设计2.功能实现3.结果展示 0.引言 CloudCompare源代码编译成功后&#xff0c;即可进行二次开发&#xff0c;可以通过修改源码或者制作插件&#xff08;插件开发详见&#xff1a;CloudCompare如何进行二次开发之插件开发&#xff1f;&#xff09;实现二次开…

SpringBoot配置文件(properties与yml详解)

目录 一&#xff0c;SpringBoot配置文件 1&#xff0c;配置文件的作用 2&#xff0c;配置文件的格式 二&#xff0c;properties 配置文件说明 1&#xff0c;properties 基本语法 2&#xff0c;读取配置文件 3&#xff0c;properties 的缺点 三&#xff0c;yml配置文件说…