爬虫入门—requests模块之搜狗首页下载

爬虫入门—requests模块之搜狗首页下载


Author: Labyrinthine Leo   Init_time: 2021.02.16


Key Words: Spiderrequests库


公众号:Leo的博客城堡

Leo.png


head.png


1、requests

简介:requests库是一款使用python语言编写的常用的http网络请求库,可以模仿浏览器发送网络请求,获取网页信息,功能强大,方便快捷。

1.1、request库的下载

使用pip安装,在命令行输入以下命令无报错即可。

pip install requests
1.2、requests库的基本方法

00.png

  • requests.request(method, url, **kwargs):该函数/方法用于构建Request对象。
    • method:该参数表示请求方式,如上图中的get/put/post等7种网络请求方式。
    • url:拟获取页面的url链接。
    • **kwargs:控制访问的参数,可接收13个可选项。
      • params:用于get方法访问时提交的请求参数
      • data:用于post方法访问时提交的请求参数
      • jsonJSON格式的数据
      • headersHTTP定制头
      • cookies:字典格式或者CookieJar格式,Request中的cookie
      • auth:元组,支持HTTP认证功能
      • files:字典类型,传输文件
      • timeout:设定超时时间,秒为单位
      • proxies:字典格式,设置代理IP
      • allow_redirects:默认为True,重定向参数
      • stream:默认为True,获取内容立即下载参数
      • verify:认证SSL证书参数
      • cert:本地SSL证书路径
  • requests.get(url):在函数内部自动构造一个向服务器请求资源的Request对象,返回一个包含服务器资源的Response对象。
    • 01.png
    • 返回的Response对象中,包括多个属性,如上图所示:
      • status_code:表示返回头的状态码
      • text:HTTP响应内容的字符串形式,即页面源码
      • encoding:返回从响应头中猜测的响应内容编码方式
      • apparent_encoding:从内容中分析出的响应内容的编码方式
      • content:HTTP响应内容的二进制形式
2、requests库的使用
2.1、requests模块的编码流程:
  • 指定url
  • 发起请求
  • 获取响应数据
  • 持久化存储
2.2、实战演练(搜狗首页的下载)
  1. 目标:对搜狗网站首页(https://www.sogou.com)页面信息(如下图所示)进行爬取并将html代码保存到文件中。

02.png

  1. 编码:
# coding  : utf-8
# fun     : 爬取搜狗首页
# @Author : Labyrinthine Leo
# @Time   : 2021.01.30

import requests
import json

def sougou_spider(url=None):
    """
    爬取搜狗首页信息
    :param url: 搜索链接
    :return:
    """
    if url is None:
        print("url should not be None!")
        return
    # 1.指定url
    url = url
    # 2.UA伪装
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36'
    }
    # 3.发送请求
    response = requests.get(url=url, headers=headers)
    response.encoding = response.apparent_encoding # 矫正编码
    # 4.获取响应的页面
    page_text = response.text
    # 5.持久化存储
    fileName = './sougou.html'
    with open(fileName,'w',encoding='utf-8') as fp:
        fp.write(page_text)
    print("信息爬取成功!")


if __name__ == '__main__':
    # 设置网页url
    url = "https://www.sogou.com/"
    sougou_spider(url)
  1. 注意点:
  • 普通的静态页面爬取,通常使用get方法,爬取的过程中网站最基础的反爬机制就是检测User-Agent信息,即判断此次网络请求的是浏览器用户还是代码爬虫,因此在编写代码时,最基本的是在请求头添加User-Agent信息,其为字典形式,通常是浏览器的标识。该方式,也叫UA伪装。
  • response.encoding = response.apparent_encoding语句用于对响应页面的源码数据进行编码的矫正,防止在对页面信息存储展示时出现乱码现象。

临渊羡鱼不如退而结网
创作不易,如果您觉得这篇文章对你有用,可以点个赞,算是对笔者的支持和激励!这里是Leo的博客城堡,以Python为核,ML&DL为主,泛之形形色色,输寥寥拙见,摄浮光掠影,讲三两故事。临渊羡鱼,不如退而结网,持续干货输出,有趣的灵魂值得你的关注!
原文可以去笔者的github主页:https://github.com/LabyrinthineLeo/Yxs_Git_Learning_repos查看(如果可以,点个star也无妨呀,嘿嘿)。


Leo.png


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值