学习地址:https://www.icourse163.org/learn/BIT-1001870001?tid=1003245012#/

  • Requests库的七个主要方法

  • requests.get()方法

r=requests.get(url,params=None,**kwargs)

  • url:拟获取页面的url链接
  • params:url中的额外参数,字典或字节流格式,可选
  • **kwargs:12个控制访问的参数

Response对象

Response对象的属性

r.encoding:如果header中不存在charset,则认为编码为ISO-8859-1

r.apparent_encoding:根据网页内容分析出的编码方式

  • 爬取网页的通用代码框架

Requests库的异常

处理异常的方法

r.raise_for_status():如果不是200,产生异常requests.HTTPError

通用代码框架

  • HTTP协议及Requests库方法

HTTP:超文本传输协议,一个基于请求与响应模式的、无状态的应用层协议,采用URL作为定位网络资源的标识。

URL是通过HTTP协议存取资源的Internet路径,一个URL对应一个数据资源,格式:http://host[:port][path]

  • host:合法的Internet主机域名或IP地址
  • port:端口号,缺省端口为80
  • path:请求资源的路径

HTTP协议对资源的操作

PATCH和PUT的区别:

假设URL位置有一组数据UserInfo,包括UserID、UserName等20个字段。

需求:用户修改了UserName,其他不变。

  • 采用PATCH,仅向URL提交UserName的局部更新请求。可节省网络带宽。
  • 采用PUT,必须将所有20个字段一并提交到URL,未提交字段被删除。

HTTP协议与Requests库的方法是一一对应的。

Requests库的head()方法

Requests库的post()方法(附加新的数据)

Requests库的put()方法(覆盖原有数据)

  • Requests库主要方法解析

requests.requests(method,url,**kwargs)

**kwargs:控制访问的参数,均为可选项:

  • params:字典或字节序列,作为参数增加到url中

  • data:字典、字节序列或文件对象,作为Request的内容

  • json:JSON格式的数据,作为Request的内容

  • headers:字典,HTTP定制头

  • cookies:字典或CookieJar,Request中的cookie
  • auth:元组,支持HTTP认证功能
  • files:字典类型,传输文件

  • timeout:设定超时时间,秒为单位

  • proxies:字典类型,设定访问代理服务器,可以增加登录认证

其他六个主要方法:

  1. requests.get(url,params=None,**kwargs)
  2. requests.head(url,**kwargs)
  3. requests.post(url,data=None,json=None,**kwargs)
  4. requests.put(url,data=None,**kwargs)
  5. requests.patch(url,data=None,**kwargs)
  6. requests.delete(url,**kwargs)
  • Requests库网络爬虫实战

1.京东商品页面的爬取

import requests
url = 'https://item.jd.com/100004404944.html'
try:r = requests.get(url)r.raise_for_status()r.encoding = r.apparent_encodingprint(r.text[:1000])
except:print("爬取失败")

2.亚马逊商品页面的提取

import requests
url = 'https://www.amazon.cn/gp/product/B01M8L5Z3Y'
try:kv = {'User-Agent':'Mozilla/5.0'}r = requests.get(url, headers=kv)r.raise_for_status()r.encoding = r.apparent_encodingprint(r.text[1000:2000])
except:print("爬取失败")

这里通过headers字段模拟浏览器向亚马逊服务器提供HTTP请求。

3.百度360搜索关键词提交

百度的关键词接口:http://www.baidu.com/s?wd=keyword

360的关键词接口:http://www.so.com/s?q=keyword

import requests
keyword = 'python'
try:kv = {'wd':keyword}r = requests.get("http://www.baidu.com/s", params=kv)print(r.request.url)r.raise_for_status()print(len(r.text))
except:print("爬取失败")

4.网络图片的爬取和存储

网络图片链接的格式:http://www.example.com/picture.jpg

国家地理:http://www.ngchina.com.cn/

选择一个图片Web页面:http://www.ngchina.com.cn/photography/photo_of_the_day/5946.html

图片链接:http://image.ngchina.com.cn/2019/0629/20190629042347347.jpg

import requests
import os
url = 'http://image.ngchina.com.cn/2019/0629/20190629042347347.jpg'
root = 'D://pics//'
path = root + url.split('/')[-1]  # 以jpg图片名字作为文件名
try:if not os.path.exists(root):os.mkdir(root)  # 当文件夹不存在时创建root文件夹if not os.path.exists(path):r = requests.get(url)  # 当jpg图片名文件不存在时爬取该图片with open(path, 'wb') as f:f.write(r.content)print("文件保存成功")else:print("文件已存在")
except:print("爬取失败")

5.IP地址归属地的自动查询

接口形式:http://m.ip138.com/ip.asp?ip=ipaddress

import requests
url = 'http://m.ip138.com/ip.asp?ip='
try:r = requests.get(url+'106.39.41.16')r.raise_for_status()r.encoding = r.apparent_encodingprint(r.text[-500:])
except:print("爬取失败")

爬虫之Requests库入门相关推荐

  1. python request库_【Python爬虫】Request库入门

    什么是爬虫? 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁.自动索引. ...

  2. 【Python爬虫】Request库入门

    什么是爬虫? 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁.自动索引. ...

  3. python中requests库入门及写入文件

    1.python中requests库入门 import requests r = requests.get("https://www.baidu.com") print(r.sta ...

  4. 煎蛋网妹子图爬虫(requests库实现)

    煎蛋网妹子图爬虫(requests库实现) 文章目录 煎蛋网妹子图爬虫(requests库实现) 一.前言 环境配置 二.完整代码 一.前言 说到煎蛋网爬虫,相比很多人都写过,我这里试着用reques ...

  5. python爬虫基础-requests库

    python爬虫基础-requests库 python爬虫 1.什么是爬虫? 通过编写程序,模拟浏览器上网,然后让其去互联网上抓取数据的过程. 注意:浏览器抓取的数据对应的页面是一个完整的页面. 为什 ...

  6. python的requests库的添加代理_python爬虫之requests库使用代理

    python爬虫之requests库使用代理 发布时间:2020-03-25 17:00:54 来源:亿速云 阅读:110 作者:小新 今天小编分享的是关于python爬虫的requests库使用代理 ...

  7. 起点中文网爬虫实战requests库以及xpath的应用

    起点中文网爬虫实战requests库以及xpath的应用 知识梳理: 本次爬虫是一次简单的复习应用,需要用到requests库以及xpath. 在开始爬虫之前,首先需要导入这两个库 import re ...

  8. Python网络爬虫与信息提取—requests库入门

    requests的学习笔记 requests库自动爬取HTML页面,自动网络请求提交 此博客为中国大学MOOC北京理工大学<Python网络爬虫与信息提取>的学习笔记 requests库的 ...

  9. Python爬虫Requests库入门及HTTP协议

    HTTP协议 HTTP,Hypertext Transfer PRotocol,超文本传输协议 HTTP是一个基于"请求于响应"模式的,无状态的应用层协议 HTTP协议采用URL作 ...

  10. Python网络爬虫之requests库Scrapy爬虫比较

    requests库Scrapy爬虫比较 相同点: 都可以进行页面请求和爬取,Python爬虫的两个重要技术路线 两者可用性都好,文档丰富,入门简单. 两者都没有处理JS,提交表单,应对验证码等功能(可 ...

最新文章

  1. poj2739(尺取法+质数筛)
  2. SSH的各个配置文件:
  3. C++ initializer_list 类型详解
  4. Linux查看用户信息/查看所有用户信息的命令
  5. Python语言 目录
  6. 饶军:Apache Kafka的过去,现在,和未来
  7. 《HTML与CSS入门经典(第8版)》——导读
  8. android 通讯录恢复,通讯录恢复
  9. 分享一个很容易实现的某大学的结构光源码【DIY自己的三维扫描仪】
  10. 多用途互联网邮件扩展--MIME类型简介
  11. 340页11万字智慧政务大数据资源平台大数据底座数据治理建设方案
  12. n*m的格子中正方形个数和长方形个数
  13. 总说业务,到底业务常用的指标有哪些
  14. 【参赛作品70】MOGDB/openGauss与PostgreSQL关于GDK字符集问题
  15. 无人机3d可视化系统的应用是怎样实现的?
  16. 51单片机入门教程(3)——数码管显示学号
  17. 怀揣感恩之心,学会感恩
  18. Raft 算法详解(一)领导者选举
  19. Vulkan免费版VulkanRT 1.0.65.0
  20. 自动化横行的今天,手工测试如何杀出一条血路?

热门文章

  1. 嵌入式Linux驱动学习之路(二)u-boot体验
  2. 团购网站安全性普遍堪忧
  3. Struts2 初探
  4. [EntLib]UAB(Updater Application Block)下载
  5. 冯诺依曼图熵(VNGE)Python实现及近似计算
  6. 卷积运算和运算后特征图大小计算2
  7. numpy.cumsum()函数
  8. ENVIArcGis——植被覆盖度提取
  9. ArcGIS中创建数据要素模板,便捷数据采集
  10. Nginx根据url参数匹配跳转