【爬虫】入门级知识整理


一、爬虫的基本概念

爬虫:一段自动抓取互联网信息的程序,从互联网上抓取对于我们有价值的信息。

爬虫的合法性:几乎每一个网站都有一个名为 robots.txt 的文档,当然也有部分网站没有设定 robots.txt。对于没有设定 robots.txt 的网站可以通过网络爬虫获取没有口令加密的数据,也就是该网站所有页面数据都可以爬取。如果网站有 robots.txt 文档,就要判断是否有禁止访客获取的数据。

二、爬虫在使用场景中的分类

分为:

  • 通用爬虫:抓取系统重要组成部分,抓取的是一整张页面数据。
  • 聚焦爬虫:是建立在通用爬虫的基础之上,抓取的是页面中特定的局部内容。

三、 爬虫的基本原理

网页请求的过程分为两个环节

  • Request (请求):每一个展示在用户面前的网页都必须经过这一步,也就是向服务器发送访问请求。
  • Response(响应):服务器在接收到用户的请求后,会验证请求的有效性,然后向用户(客户端)发送响应的内容,客户端接收服务器响应的内容,将内容展示出来,就是我们所熟悉的网页请求。

网页请求的方式也分为两种

  • GET:最常见的方式,一般用于获取或者查询资源信息,也是大多数网站使用的方式,响应速度快。
  • POST:相比 GET 方式,多了以表单形式上传参数的功能,因此除查询信息外,还可以修改信息。

所以在爬取网站前应该先确定一下是什么请求。

四、 爬虫的基本流程

  • 通用爬虫基本流程:

    1. 指定url
    2. 基于requests模块发起请求
    3. 获取响应中的数据
    4. 进行持久化存储

get请求类:

#爬虫实战-网页采集器
import requests
from requests.api import head
if __name__ =="__main__":
    #UA伪装:将封装到一个字典中
    headers = {
   
        "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
    }
    url = "https://www.sogou.com/web"
    #处理url所携带的参数:存储在字典中
    kw = input("输入关键字:")
    param = {
   
        "query":kw
    }
    #模拟浏览器请求  有参数
    response = requests.get(url=url,params=param,headers=headers)
    #存储数据
    page_text = response.text
    #持久性存储
    filename = kw+".html"
    with open(filename,"w",encoding="utf-8") as fp:
        fp.write(page_text)
    print(filename,"保存成功!")
    

post请求类:
例1:

#获取百度翻译
#post请求,携带了参数
#响应数据是一组json数据

import requests
import json

if __name__ == "__main__":
    word = input("请输入:")
    #1.获取URL
    post_url = "https://fanyi.baidu.com/sug"   #这边必须是sug ,要写了翻译的内容再去看request url
    #2.UA伪装
    headers = {
   
        "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
    }
    #3.post请求参数处理(同get一样)
    data = {
   
        "kw":word
    }
    #4.请求发送
    response = requests.post(url=post_url,data=data,headers=headers)
    #5.获取响应数据:json()方法返回的是obj(对象),如果确定数据是json类型,才可以使用json()
    dic_obj = response.json()
    #print(dic_obj)
    
    #持久化存储
    filename = word + ".json"
    fp = open(filename,"w",encoding="utf-8")
  
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tialyg

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值