1-爬虫基础知识(6节课学会爬虫)

1-爬虫基础知识(6节课学会爬虫)

  • 1.什么是爬虫
  • 2.爬取的数据去哪了
  • 3.需要的软件和环境
  • 4.浏览器的请求
    • (1)Url
    • (2)浏览器请求url地址
    • (3)url地址对应的响应
  • 5.认识HTTP/HTTPS
    • 5.1 http协议之请求
      • (1)请求行
      • (2)请求头
      • (3)请求体
    • 5.2 HTTP协议之响应
      • (1)响应头
      • (2)响应体

1.什么是爬虫

爬虫:通俗的说爬虫就是通过一定的规则策略,自动抓取、下载互联网上网页,在按照某些规则算法对这些网页进行数据抽取、 索引。 像百度、谷歌、今日头条、包括各类新闻站都是通过爬虫来抓取数据。

2.爬取的数据去哪了

呈现:展示在网页上,或者是展示在app上
分析:从数据中寻找一些规律
搜索:微博等是有用户进行内容发布,数据发布的
预测:数据可以进行后续的预测

3.需要的软件和环境

Python3:
(1)基础语法,要有(字符串、列表、字典、判断和循环)
(2)函数(函数的创建和调用)
(3)面向对象(如何创建一个类,如何使用一个类即可)

Pycharm:Python编辑器,Python的官网可以下载
Chrome浏览器:分析网络请求用的,在network有url地址

4.浏览器的请求

在这里插入图片描述

(1)Url

在Chrome中右击检查,点到network
Url-请求的协议+网站的域名+资源路径+参数
后续一旦看到url中出现百分号,进行url解码(在百度搜索在线解码),可以看到文字内容

在Chrome中会出现很多的url地址,有很多额外的url地址的请求,如css和图片等地址
Elements中的内容就是网页的所有内容

(2)浏览器请求url地址

当前url对应的响应+js+css+图片 —》elements中的内容
爬虫请求url对应的响应

Elements的内容和爬虫获取到的url地址的响应不同,需要爬虫以当前url地址对应的响应为准提取数据。而不能以elements为准,elements中的内容不准

在network中的response中可以看到准确的内容-当前的url响应

(3)url地址对应的响应

从network中找到当前的url地址,点击response
在网页右键显示源码,也可以当前url响应

爬虫得到的url响应是不会主动加载js+css等图片的,要以当前url响应为准

有些贴吧会刷新页面,重新显示网页源码,会导致下次内容和之前内容不同,但框架相同,只是填入的数据不同

很多请求是,如数据变化

爬虫模拟请求,可以给人投票

5.认识HTTP/HTTPS

http:超文本传输协议,以明文的形式传输,效率更高,但是不安全
https:HTTP+SSL(安全套接字层), 传输之前先加密,之后解密获取内容,效率较低,但是安全

5.1 http协议之请求

在这里插入图片描述

(1)请求行

协议 url地址,请求协议名及版本号

(2)请求头

host:域名
connection:支持转换成长链接
cache-control:缓存控制
user-agent:(重要)用户代理(身份标识),对方服务器能通过user-agent判断
我们可以在Chrome浏览器模拟手机版发送请求,对应需要将user-agent改成手机版浏览器
Upgrade-insecure-requests:将不安全的http请求转换成https请求
Accept-encoding:接收什么类型的数据
Accept-language:接收什么语言的数据

Cookie:(重要),用来存储用户信息,最终每次请求会被携带上发送给对方服务器
要获取登录后才能访问的页面,对方的服务器会通过cookie判断我们是一个爬虫,为什么对方服务器知道你登录了,下次打开访问网站,要请求

(3)请求体

携带数据
Get请求没有请求体(参数放在url中)
Post请求有请求体(数据放在请求体中,常用于登录注册,传输大文本(携带的数据量很大))

5.2 HTTP协议之响应

(1)响应头

Set-cookie:对方服务器通过该字段可以设置cookie到本地

(2)响应体

Url地址对应的响应

Cookie中重点关注name和value字段,
在这里插入图片描述

后面写爬虫的时候,要用到的基本讲完

在network中重新请求地址就有请求了,这就是抓包(看浏览器发了多少请求)

当我们只用user-agent一个字段无法获取数据时,要考虑是否将其他的字段都带上,一般user-agent和cookie就够了,或者refer等

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

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

相关文章

海康+libtorch的血泪教训

一、LibTorch使用, 详见: /INCLUDE:?warp_sizecudaatYAHXZ 二、海康二次开发, 目前选4.31,只能c14。 三、做dll注意:

使用Python实现深度学习模型:演化策略与遗传算法

在深度学习和机器学习领域,演化策略(Evolution Strategies, ES)和遗传算法(Genetic Algorithms, GA)是两种强大的优化方法。它们通过模拟自然选择和生物进化过程来寻找最优解。本文将详细讲解如何使用Python实现这两种方法,并通过代码示例逐步解释其核心概念和实现步骤。…

Excel+vue+java实现批量处理功能

需求背景: 产品创建流程比较复杂,有时候需要一次性创建多至10个,所以做了Excel维护产品信息,直接导入创建的功能。能极大提高效率。 简要概括实现: 一、参考单个创建,设计创建模板,表头对应填写字段名&…

【华为OD机试】天然蓄水库(C++/Java/Python)

题目 题目描述 公元2919年,人类终于发现了一颗宜居星球——X星。 现想在X星一片连绵起伏的山脉间建一个天热蓄水库,如何选取水库边界,使蓄水量最大? 要求: 山脉用正整数数组s表示,每个元素代表山脉的高度。选取山脉上两个点作为蓄水库的边界,则边界内的区域可以蓄水,蓄…

ComfyUI汉化插件安装

步骤一:点击Manager 步骤二:选择安装插件 步骤三:搜索Translation,选择第一个点击右边得安装 步骤四:点击下放得RESTART进行重启 步骤五:等待重启完成后,点击设置 步骤六:选择中文语…

【Nginx】源码安装

1.安装地址 Nginx官网:nginx: download 2.下载依赖 //一键安装上面四个依赖 yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel 3.上传解压编译安装 //解压压缩包tar -xvf nginx-1.26.1.tar.gz //进入nginx cd nginx-1.26.1/ //安装到指定位…

llm学习-1(包含如何使用github的codespace):

本文学习参考:datawhalechina/llm-universe: 本项目是一个面向小白开发者的大模型应用开发教程,在线阅读地址:https://datawhalechina.github.io/llm-universe/ 一些可使用的大模型地址: Claude 使用地址 PaLM 官方地址 Gemini…

力扣第一道困难题《3. 无重复字符的最长子串》,c++

目录 方法一: 方法二: 方法三: 方法四: 没有讲解,但给出了优秀题解 本题链接:4. 寻找两个正序数组的中位数 - 力扣(LeetCode) 话不多说,我们直接开始进行本题的思路解…

24/06/24(12.1117)指针进阶 ,冒泡和快排 习题为依托巩固概念(strlen,sizeof,字符串,数组,指针大小的区别)

回调函数 回过头来调用的函数 #include <stdio.h> #include <stdlib.h> int Find_Max(int arr[], int n){ int max_value arr[0]; for (int i 1; i < n; i){ if (max_value < arr[i]) max_value arr[i]; } return…

金榜题名升学宴,怀庄之醉鸿运添彩

十年寒窗苦读&#xff0c;终于迎来金榜题名的辉煌时刻。这是对知识的向往与追求&#xff0c;也是对未来的期许与梦想。在这样一个值得纪念的时刻&#xff0c;举办一场升学宴&#xff0c;无疑是对过去努力的最好告别&#xff0c;也是对未来人生新旅程的美好祝愿。在选择升学宴用…

大数据面试题之HBase(3)

HBase的预分区 HBase的热点问题 HBase的memstore冲刷条件 HBase的MVCC HBase的大合并与小合并&#xff0c;大合并是如何做的?为什么要大合并 既然HBase底层数据是存储在HDFS上&#xff0c;为什么不直接使用HDFS&#xff0c;而还要用HBase HBase和Phoenix的区别 HBase支…

Java怎么对线程池做监控

对Java线程池进行监控是确保系统性能和稳定性的重要部分。监控线程池可以帮助我们了解线程池的状态&#xff0c;如当前活跃线程数、任务队列长度、已完成任务数等。以下是一个详细的介绍和代码示例&#xff0c;说明如何对Java线程池进行监控。 1. 监控内容 &#xff08;1&…

Spring MVC数据绑定和响应——页面跳转(一)返回值为void类型的页面跳转

一、返回值为void类型的页面跳转到默认页面 当Spring MVC方法的返回值为void类型&#xff0c;方法执行后会跳转到默认的页面。默认页面的路径由方法映射路径和视图解析器中的前缀、后缀拼接成&#xff0c;拼接格式为“前缀方法映射路径后缀”。如果Spring MVC的配置文件中没有配…

1,Windows-本地Linux 系统(WSL)

目录 第一步电脑设置 第二步安装Ubuntu 第三文件传递 开发人员可以在 Windows 计算机上同时访问 Windows 和 Linux 的强大功能。 通过适用于 Linux 的 Windows 子系统 (WSL)&#xff0c;开发人员可以安装 Linux 发行版&#xff08;例如 Ubuntu、OpenSUSE、Kali、Debian、Arc…

【子串】3. 无重复的最长子串

3. 无重复的最长子串 难度&#xff1a;中等难度 力扣地址&#xff1a;https://leetcode.cn/problems/longest-substring-without-repeating-characters/description/ 题目看起来简单&#xff0c;刷起来有好几个坑&#xff0c;特此记录一下&#xff0c;解法比官网的更加简单&…

51单片机第10步_数组

本章重点介绍如何访问数组。 #include <REG51.h> //包含头文件REG51.h,使能51内部寄存器; #include <string.h> //使能strcpy(); #include <stdio.h> //包含头文件stdio.h //_getkey();从串口读入一个字符; //putchar();向串口发送一个字节; //printf()…

[OtterCTF 2018]Play Time

还是这个程序 。。要找到游戏名字查看 进程 psscan pstree pslist 0x000000007d686b30 Rick And Morty 3820 2728 0x000000000b59a000 2018-08-04 19:32:55 UTC0000 0x000000007d7cb740 LunarMS.exe 708 2728 0x00000000731cb000 2018-08-04 19:27:39 UTC0000…

《昇思25天学习打卡营第12天 | 昇思MindSpore基于MindSpore的GPT2文本摘要》

12天 本节学习了基于MindSpore的GPT2文本摘要。 1.数据集加载与处理 1.1.数据集加载 1.2.数据预处理 2.模型构建 2.1构建GPT2ForSummarization模型 2.2动态学习率 3.模型训练 4.模型推理

支持纳管达梦数据库,命令存储支持对接Elasticsearch 8,JumpServer堡垒机v3.10.11 LTS版本发布

2024年6月24日&#xff0c;JumpServer开源堡垒机正式发布v3.10.11 LTS版本。JumpServer开源项目组将对v3.10 LTS版本提供长期的支持和优化&#xff0c;并定期迭代发布小版本。欢迎广大社区用户升级至v3.10 LTS最新版本&#xff0c;以获得更佳的使用体验。 在JumpServer v3.10.…

Redis主从复制、哨兵模式以及Cluster集群

一.主从复制 1.主从复制的概念 主从复制&#xff0c;是指将一台Redis服务器的数据&#xff0c;复制到其他的Redis服务器。前者称为主节点(Master)&#xff0c;后者称为从节点(Slave)&#xff1b;数据的复制是单向的&#xff0c;只能由主节点到从节点。默认情况下&#xff0c;…