• Python爬虫基础总结


    在这里插入图片描述​ 

    活动地址:CSDN21天学习挑战赛

    学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。

    学习日记

    目录

    学习日记

    一、关于爬虫

    1、爬虫的概念

    2、爬虫的优点

    3、爬虫的分类

    4、重要提醒

    5、反爬和反反爬机制

    6、协议

    7、常用请求头和常用的请求方法

    8、常见的响应状态码

    9、url的详解

    二、爬虫基本流程

    三、可能需要的库

    四、小例

    1、requests请求网页

    2、python解析网页源码 (使用BeautifulSoup+lxml解析网页源码)

    3、保存数据的方法 

     五、Chrmoe浏览器


    一、关于爬虫

    1、爬虫的概念

        爬虫(spider,又网络爬虫),是指向网站/网络发起请求,获取资源后分析并提取有用数据的程序。它可以帮助我们在互联网上自动的获取数据和信息,其本质是一段程序。原则上,只要是浏览器(客户端)能做的事情,爬虫都能够做。

        从技术层面来说就是 通过程序模拟浏览器请求站点的行为,把站点返回的HTML代码/JSON数据/二进制数据(图片、视频) 爬到本地,进而提取自己需要的数据,存放起来使用。

    2、爬虫的优点

            爬虫是一种从网络上高速提取数据的方式。可以把爬虫看成一个机器人,不停地点开一个个网页,从里面复制指定文本或图片进行保存(假设需求就是保存指定文本或图片)。它的手速非常非常快,一瞬间本地磁盘中就已经存了一大堆数据。

    3、爬虫的分类

    通用爬虫——准守robots协议的爬虫,通常指搜索引擎,抓取的是一整张页面数据

    聚焦爬虫——针对特定网站爬虫,无视robots协议,是建立在通用爬虫的基础之上,抓取的是页面中特定的局部内容。

    增量式爬虫——检测网站中数据更新的情况。只会抓取网站中最新更新出来的数据。

    总的来说,爬虫也分善恶

    善意的爬虫不破坏被爬取网站的资源,一般都是频率不高的正常访问,不窃取用户隐私。

    恶意的爬虫影响网站运营,造成网站宕机。 

    4、重要提醒

            爬虫合法,技术无罪,但是不能滥用。使用爬虫时要避免干扰网站正常运行,如果发现用户隐私或其他敏感内容一定不能传播,小心进去喝茶

    5、反爬和反反爬机制

    反爬机制:门户网站,可以通过指定相应的策略或技术手段,防止爬虫程序进行网站数据的爬取。

    反反爬策略:爬虫程序可以通过指定相关的策略或技术手段,破解门户网站中具备的反爬机制,从而可以获取门户网站的数据。#强行爬取可能涉及恶意

    6、协议

     robots.txt协议——君子协议,规定了网站中哪些数据可以被爬虫爬取,哪些数据不可以被爬取。

    http协议(Hyper Text Transfer Protocal)——超文本传输协议,是一种发布与接收HTML页面的方法,是服务器和客户端进行数据交互的一种形式。

    https协议(Hyper Text Transfer Protocol over SecureSocket Layer)——是HTTP协议的加密版本,在HTTP下加入了SSL层,是安全的超文本的传输协议。

    7、常用请求头和常用的请求方法

    常用请求头

    1、User-Agent:浏览器名称。在请求一个网页的时候,服务器通过这个参数就可以知道哪种浏览器在访问。
    2、Referer:表明当前这种请求是从哪个url来的。
    3、cookie:http协议是无状态。用cookie来标识请求是否是同一个人。

    常用的请求方法

    get:一般适用于只从服务器获取数据,不会对服务器资源产生影响。

    post:向服务器发送数据(登录)等,会对服务器资源产生影响。

    8、常见的响应状态码

    200:请求正常
    301:永久重定向(访问不到某个网页会跳转到另一个网页)
    302:临时重定向(未登录访问会跳转到登录页面)
    400:请求url在服务器上找不到
    403:服务器拒绝访问权限不够
    500:服务器内部错误

    9、url的详解

    scheme://host:port/path/?query-string=xxx#anchor
    1、scheme:代表的是访问的协议,一般为http或者https协议
    2、host:主机名,域名
    3、port:端口号。浏览器默认使用80端口
    4、path:查找路径
    5、query-string:查询字符串
    6、anchor:锚点,前端定位页面

    二、爬虫基本流程

    浏览器提交请求—>下载网页代码—>解析成页面

    模拟浏览器发送请求(获取网页代码)->提取有用的数据->存放于数据库或文件中

     

    三、可能需要的库

    1. from bs4 import BeautifulSoup #网页解析,获取数据
    2. import re #正则表达式,文字匹配
    3. import urllib.request,urllib.error #指定URL,获取网页数据
    4. import xlwt #EXCEL操作

    安装

    1. pip install requests
    2. pip install beautifulsoup4

             BeautifulSoup简单易用,容易理解。但是使用bs4还需要安装另一个类库lxml,用来代替bs4默认的解析器,

    用了lxml后,可以大幅度提升解析速度。

    四、小例

    1、requests请求网页

    1. import requests
    2. resp=requests.get('https://www.baidu.com') #请求百度首页
    3. print(resp)
    4. print(resp.content) #打印请求到的网页源码

    2、python解析网页源码 (使用BeautifulSoup+lxml解析网页源码)

    1. import requests
    2. from bs4 import BeautifulSoup
    3. resp=requests.get('https://www.baidu.com') #请求百度首页
    4. print(resp)
    5. print(resp.content) #打印请求到的网页源码
    6. bsobj=BeautifulSoup(resp.content,'lxml') #将网页源码构造成BeautifulSoup对象,方便操作
    7. a_list=bsobj.find_all('a') #获取网页中的所有a标签对象
    8. for a in a_list:
    9. print(a.get('href')) #打印a标签对象的href属性,即这个对象指向的链接地址

    3、保存数据的方法 

    保存数据的方法大概可以分为几类:保存文本、保存二进制文件(包括图片)、保存到数据库。

    1. import requests
    2. from bs4 import BeautifulSoup
    3. resp=requests.get('https://www.baidu.com') #请求百度首页
    4. print(resp)
    5. print(resp.content) #打印请求到的网页源码
    6. bsobj=BeautifulSoup(resp.content,'lxml') #将网页源码构造成BeautifulSoup对象,方便操作
    7. a_list=bsobj.find_all('a') #获取网页中的所有a标签对象
    8. text=''
    9. for a in a_list:
    10. href=a.get('href') #获取a标签对象的href属性,即这个对象指向的链接地址
    11. text+=href+'\n'
    12. with open('url.txt','w') as f: #
    13. f.write(text) #将text里的数据写入到文本中

     五、Chrmoe浏览器

    elements:分析网页结构,获取想要的数据。

    console控制台:打印输出网站信息。

    sources:加载网页所需要的所有的源文件,除elements的源码之外。

    network:查看整个网页发送的所有网络请求。

    sessio和cookie是用于保持HTTP长时间连接状态的技术

            session代表服务器与浏览器的会话过程,是一种服务器端的机制,session对象用来储存特定用户会话所需的信息。session由服务器端生成,保存在服务器的内存、缓冲、硬盘或数据库中。

            cookie是由服务器端生成后发送给客户端(一般指浏览),其总是保存在客户端。

    cookie基本原理:创建cookie->设置储存cookie->发送cookie->读取cookie

  • 相关阅读:
    【重要!!】CSDN博客停止更新, 迁移至自建博客
    [附源码]计算机毕业设计JAVAjsp宾馆客房管理系统
    xss一些笔记
    Windows 10, version 22H2 (released Oct 2022) 简体中文版、英文版下载
    Cesium 根据飞机航线计算飞机的Heading(偏航角)、Pitch(俯仰角)、Roll(翻滚角)
    抖音矩阵系统,抖音SEO源码,抖音矩阵系统look。
    美图SaaS、有赞美业,求同存异的差异化角逐
    百数应用中心——选择一款适合企业的标准应用
    【SQL】实现读写分离的分配的方式
    常用数据集格式介绍,自制,比例划分,图片集重组及其转换————COCO介绍(持续更新)
  • 原文地址:https://blog.csdn.net/m0_63794226/article/details/126297586