zoukankan      html  css  js  c++  java
  • requests模块

    必知知识点

    -常见请求头

    User-Agent 浏览器的身份标识字符串
    Content-Type 请求体的MIME类型 (用于POST和PUT请求中)

    -常见响应头

    Status 通用网关接口的响应头字段,用来说明当前HTTP连接的响应状态。

    -https协议的加密方式

    对称秘钥(容易被拦截)

    非对称秘钥(模拟服务器响应)

    证书认证(第三方机构认证的,通信双方都认可)

    requests模块:requests模块是python中原生的基于网络请求的模块,其主要作用是用来模拟浏览器发起请求。功能强大,用法简介,在爬虫领域占据很重要的地位。

    使用requests:

    自动处理url编码

    自动处理post请求参数

    简化cookie和代理操作

    使用流程:

       指定url

       基于requests模块发起请求

       获取响应对象中的数据值

       持久化存储

    实际案例:

    # 需求,爬取搜狗指定词条搜索后的页面

    import requests
    url = "http://www.sogou.com/web"
    wd = input('enter a word:')
    param = {
        'query':wd
    }
    response = requests.get(url=url,params=param)
    
    page_text = response.content
    fileName = wd+'.html'
    with open(fileName,'wb') as f:
        f.write(page_text)
        print('over')

    # 豆瓣喜剧电影排行

    import requests
    url = 'https://movie.douban.com/j/chart/top_list'
    headers = {
        "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.108 Safari/537.36"
    }
    parma = {
        "type": "24",
        "interval_id": "100:90",
        "action": "",
        "start": "1",
        "limit": "20",
    }
    response_obj = requests.get(url=url,headers=headers,params=parma).json()
    print(response_obj)

    # 爬取肯德基地址

    import requests
    import json
    url = 'http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=keyword'
    headers = {
        "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.108 Safari/537.36"
    }
    f = open('KFCaddr.json','w',encoding='utf-8')
    for i in range(1,8):
        data = {
            "cname": "",
            "pid": "",
            "keyword": "北京",
            "pageIndex": str(i),
            "pageSize": "10",
        }
        obj_json = requests.post(url=url,headers=headers,data=data).json()['Table1']
        json.dump(obj_json,f,ensure_ascii=False)
    f.close()
  • 相关阅读:
    深入new/delete:Operator new的全局重载
    c语言运算符优先级
    投影仪开关机码和波特率
    sqlyog mysql 外键引用列找不到想要的字段的原因
    idea 迁移maven项目出现导入仓库半天没反应的问题解决
    idea 解决 pom.xml 中,maven仓库无法导入的问题(红线)
    fastjson 使用记录
    idea git pull项目到本地时容易出现的问题
    JSONObject
    idea Cannot Resolve Symbol 问题解决
  • 原文地址:https://www.cnblogs.com/Wj-Li/p/10864895.html
Copyright © 2011-2022 走看看