requests模块基础

什么是requests模块 requests模块是python中原生基于网络模拟浏览器发送请求模块。功能强大,用法简洁高效。


为什么要是用requests模块

  • 用以前的urllib模块需要手动处理url编码
  • 手动处理post参数
  • 处理cookie和代理操作繁琐

..............


requests模块

  • 自动处理url编码
  • 自动处理post参数
  • 简化cookie和代理操作

...............


如何使用requests模块

    • 安装:

      • pip install requests
    • 使用流程
      • 指定url
      • 基于requests模块发起请求
      • 获取响应对象中的数据值
      • 持久化存储
  •     
  • 1、基于requests模块的get请求 需求:爬取搜狗指定词条搜索后的页面数据
  •  import requests
    #指定url
    base_url = "https://www.sogou.com/web"
    #搜索词条的关键字
    query = {
    "query":"python"
    }
    #模仿User-Agent(伪造电脑版本信息以及什么浏览器信息)
    headers = {
    "User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36"
    }
    #requests.get(url, params=None, **kwargs),第一个是url地址,第二个关键字参数。
    response = requests.get(url=base_url,params=query,headers=headers)
    #因为发送的是get方式 所以返回的是一个字符串,即text可得相关html标签页
    print(response.text)
  • 2、基于requests模块ajax的get请求 需求:爬取豆瓣电影分类排行榜 https://movie.douban.com/中的电影详情数据

  •  import requests
    url = "https://movie.douban.com/j/chart/top_list"
    #根据需求取数据
    start = input("enter start:")
    limit = input("enter limt:")
    #请求头里面的请求关键字
    param = {
    "type": "",
    "interval_id": "100:90",
    "action": "",
    "start": start,
    "limit": limit,
    }
    #伪造机型和浏览器
    headers = {
    "User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36",
    }
    #开始get请求,因为是ajax的get方法所以请求应该是get
    response = requests.get(url=url,params=param,headers=headers)
    #返回的是一个json数据,因此要用json解析
    print(response.json())

    3、基于requests模块ajax的post请求 需求:爬取肯德基餐厅查询http://www.kfc.com.cn/kfccda/index.aspx中指定地点的餐厅数据

     import requests
    url = "http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=keyword"
    #输入保存信息地点
    keyword = input("enter a word:")
    #请求头里面的请求关键字
    for i in range(1,9):
    data = {
    "cname":"",
    "pid": "",
    "keyword": keyword,
    "pageIndex": i,
    "pageSize": "",
    }
    #伪造机型和浏览器
    headers = {
    "User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36",
    }
    #因为是ajax的post方法所以post请求
    response = requests.post(url=url,data=data,headers=headers)
    #响应的是一个text数据,因此要用text解析
    fileName = str(i)+".txt"
    with open(fileName,"w",encoding="utf8") as f:
    f.write(response.text)

    显示文件有:

    4、综合练习 需求:爬取国家药品监督管理总局中基于中华人民共和国化妆品生产许可证相关数据http://125.35.6.84:81/xk/

     import requests
    
     url = "http://125.35.6.84:81/xk/itownet/portalAction.do?method=getXkzsList"
    ID_list = []
    # 伪造机型和浏览器
    headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36",
    }
    for i in range(1,16):
    data = {
    "on": "true",
    "page": i,
    "pageSize": "",
    "productName": "",
    "conditionType": "",
    "applyname": "",
    "applysn": "",
    } #因为是ajax的post方法所以post请求
    response = requests.post(url=url,data=data,headers=headers).json() ID_list.append(response["list"][0]["ID"])
    base_url = "http://125.35.6.84:81/xk/itownet/portalAction.do?method=getXkzsById"
    for i in ID_list:
    data = {
    "id": i,
    }
    # 响应的是一个json数据,因此要用json解析
    response = requests.post(url=base_url,data=data,headers=headers)
    print(response.json())

    Jupyter notebook应该是库出问题了,找了很久都没弄到原因,还一直以为自己代码出现问题了。换到pycharm成功运行

03爬虫-requests模块基础(1)的更多相关文章

  1. 05爬虫-requests模块基础(2)

    今日重点: 1.代理服务器的设置 2.模拟登陆过验证码(静态验证码) 3.cookie与session 4.线程池 1.代理服务器的设置 有时候使用同一个IP去爬取同一个网站,久了之后会被该网站服务器 ...

  2. 爬虫之requests模块基础

    一.request模块介绍 1. 什么是request模块 - python中原生的基于网络请求的模块,模拟浏览器发起请求. 2. 为什么使用request模块 - urllib需要手动处理url编码 ...

  3. 03 requests模块基础

    1. requests 模块简介 什么是requests 模块 requests模块是python中原生的基于网络请求的模块,功能强大,用法简洁高效.在爬虫领域中占据着半壁江山的地位.requests ...

  4. 爬虫requests模块 1

    让我们从一些简单的示例开始吧. 发送请求¶ 使用 Requests 发送网络请求非常简单. 一开始要导入 Requests 模块: >>> import requests 然后,尝试 ...

  5. 爬虫 requests模块的其他用法 抽屉网线程池回调爬取+保存实例,gihub登陆实例

    requests模块的其他用法 #通常我们在发送请求时都需要带上请求头,请求头是将自身伪装成浏览器的关键,常见的有用的请求头如下 Host Referer #大型网站通常都会根据该参数判断请求的来源 ...

  6. 爬虫——requests模块

    一 爬虫简介 #1.什么是互联网? 互联网是由网络设备(网线,路由器,交换机,防火墙等等)和一台台计算机连接而成,像一张网一样. #2.互联网建立的目的? 互联网的核心价值在于数据的共享/传递:数据是 ...

  7. 2 爬虫 requests模块

    requests模块 Requests是用python语言基于urllib编写的,采用的是Apache2 Licensed开源协议的HTTP库,Requests它会比urllib更加方便,reques ...

  8. 爬虫--requests模块高级(代理和cookie操作)

    代理和cookie操作 一.基于requests模块的cookie操作 引言:有些时候,我们在使用爬虫程序去爬取一些用户相关信息的数据(爬取张三“人人网”个人主页数据)时,如果使用之前requests ...

  9. 爬虫--requests模块学习

    requests模块 - 基于如下5点展开requests模块的学习 什么是requests模块 requests模块是python中原生的基于网络请求的模块,其主要作用是用来模拟浏览器发起请求.功能 ...

随机推荐

  1. Linux 终端命令格式

    Linux 终端命令格式 一.目标 了解终端命令格式 知道如何查阅终端命令帮助信息 二. 终端命令格式 command [-options] [parameter] 说明: command:命令名,相 ...

  2. 【数据结构】9.java源码关于HashTable

    1.hashtable的内部结构 基础存储数据的hash桶由Entry结构的数组存放而entry数据结构,有hash,key和value,还有一个指向下一个节点的引用next对象 这里就和hashma ...

  3. 小白学习day2------比较运算

    1 算术运算 加+ 2+3=5 减 - 3-2=1 乘 * 2*3=6 除 / 6/2=3 取膜 % 余数 幂 ** 2**3=8 整除 // 9//4=2 2 比较运算 == 判断是否等于 != , ...

  4. 关于GIS中Scale和Resolution的那些事儿

    在ArcMap或各类前端地图框架(Leaflet.js.OpenLayers.js.ArcGIS Javascript等)中都需要加载WMTS或ArcGIS Rest服务,但所有的地图显示的原理基本上 ...

  5. .Net使用HttpClient以multipart/form-data形式post上传文件及其相关参数

    前言: 本次要讲的是使用.Net HttpClient拼接multipark/form-data形式post上传文件和相关参数,并接收到上传文件成功后返回过来的结果(图片地址,和是否成功).可能有很多 ...

  6. ionic app 监听网络功能

    安装cordova插件: cordova plugin add cordova-plugin-network-information 在app.js 的run()里面的function()注入$cor ...

  7. MySQL数据库笔记六:数据定义语言及数据库的备份和修复

    1. MySQL中的函数 <1>加密函数 password(str) 该函数可以对字符串str进行加密,一般情况下,此函数给用户密码加密. select PASSWORD('tlxy666 ...

  8. css3的@media

    都知道bootstrap响应式布局很酷,但是是怎么实现的呢?其官网首页有提到这一切的功劳都是来自于CSS 媒体查询(Media Query). 使用 @media 查询,你可以针对不同的媒体类型定义不 ...

  9. 一张图了解.Net Core和.NetFx和.Net Standard和Xamarin关系

    一张图了解 .Net Core和.Net Framework和.Net Standard和Xamarin关系 总结 .NET Standard是一项API规范,每一个特定的版本,都定义了必须实现的基类 ...

  10. (五十五)c#Winform自定义控件-管道

    前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章. GitHub:https://github.com/kwwwvagaa/NetWinformControl 码云:ht ...