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

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

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等

相关推荐
梧桐树04293 小时前
python常用内建模块:collections
python
Dream_Snowar3 小时前
速通Python 第三节
开发语言·python
蓝天星空5 小时前
Python调用open ai接口
人工智能·python
jasmine s5 小时前
Pandas
开发语言·python
郭wes代码5 小时前
Cmd命令大全(万字详细版)
python·算法·小程序
leaf_leaves_leaf5 小时前
win11用一条命令给anaconda环境安装GPU版本pytorch,并检查是否为GPU版本
人工智能·pytorch·python
夜雨飘零15 小时前
基于Pytorch实现的说话人日志(说话人分离)
人工智能·pytorch·python·声纹识别·说话人分离·说话人日志
404NooFound5 小时前
Python轻量级NoSQL数据库TinyDB
开发语言·python·nosql
天天要nx5 小时前
D102【python 接口自动化学习】- pytest进阶之fixture用法
python·pytest
minstbe5 小时前
AI开发:使用支持向量机(SVM)进行文本情感分析训练 - Python
人工智能·python·支持向量机