requests模块概念及使用案例

requests模块

  • 定义
  • 使用方法(编码流程)
  • 环境安装
  • 实战编码

定义

requests模块是python中原生的一款基于网络请求的模块,功能强大,简单便捷,效率高,其作用是模拟浏览器发送请求。

使用方法(编码流程)

  • 指定url(确定请求网址)
  • 基于requests模块发起请求
  • 获取响应数据
  • 存储数据

环境安装

pip install requests

实战编码

例一:爬取搜狗首页数据

#需求:爬取搜狗首页数据(搜狗首页源码数据)
import requests
if __name__ == "__main__":
#step 1:指定url
    url = "https://www.sogou.com/"
#step 2:发起请求
#get方法会返回一个响应对象
    response = requests.get(url=url)
#step 3:获取响应数据,text返回的是字符串形式的响应数据
    page_text = response.text
    print(page_text)
#step 4:持久化存储
    with open('./sogou.html','w',encoding ='utf-8') as fp:
        fp.write(page_text)
    print('爬取数据结束!')

例二:爬取指定词条对应的搜索结果页面(简易网页采集器)

#UA:User-Agent(请求载体的身份标识)
#UA检测(反爬机制):门户网站的服务器会检测对应请求的载体身份标识,如果检测
# 为某浏览器,则说明该请求正常,即不会拒绝该浏览器的请求;如果检测到为不正常
# 请求(爬虫)则服务器端可能会拒绝该请求
#UA伪装:将爬虫对应的请求载体身份标识伪装成某一款浏览器

import requests
if __name__ == "__main__":
    #UA伪装:将对应的User-Agent封装到一个字典中
    headers = {
        #基于火狐浏览器的身份标识(可选)
        'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:88.0) Gecko/20100101 Firefox/88.0'
    }
    url = 'https://www.baidu.com/s'
    #处理url携带的参数:封装到字典中
    kw = input('enter a word:')
    param = {
        'wd':kw
    }
    #对指定的url发起的请求对应的url是携带参数的,并在请求过程中处理了参数
    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,'保存成功!')

破解百度翻译

#破解百度翻译
#定位ajax请求:页面-右键-检查-网络-XHR
#发现请求类型为post请求
import requests
import json
if __name__ == "__main__":
    #指定URL
    post_url = "https://fanyi.baidu.com/sug"
    #进行UA伪装
    headers = {
        'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:88.0) Gecko/20100101 Firefox/88.0''
    }
    #post请求参数处理(同get请求一致)
    word = input('enter a word:')
    data = {
        'kw':word
    }
    #请求发送
    response = requests.post(url=post_url,data=data,headers=headers)
    #获取响应数据(查询到服务器响应的是json类型的)
    #json()方法返回的是对象
    dic_obj = response.json()

    #进行持久化存储
    filename = word+'.json'
    fp = open(filename,'w',encoding='utf-8')
    json.dump(dic_obj,fp=fp,ensure_ascii=False)
    print('over!')

爬取豆瓣电影分类排行榜
爬取肯德基餐厅位置信息
爬取国家药品监督管理总局中基于中华人民共和国化妆品生产许可证相关数据

你可能感兴趣的:(python学习笔记,python,爬虫,request)