当前位置: 首页 > news >正文

用照片做模板下载网站成都网站建设公司 四川冠辰科技

用照片做模板下载网站,成都网站建设公司 四川冠辰科技,黑帽seo是什么意思,搬家公司怎么做网站Python3 爬虫学习笔记第二章 —— 【基本库 requests 的使用】文章目录【2.1】 requests 简介【2.2】 requests 基本用法 【2.3】 requests 构建 GET 请求 【2.3.1】 基本用法【2.3.2】 二进制数据抓取 【2.3.3】 添加 headers【2.4】 requests 构建 POST 请求 【2.5】 request… Python3 爬虫学习笔记第二章 —— 【基本库 requests 的使用】 文章目录 【2.1】 requests 简介【2.2】 requests 基本用法 【2.3】 requests 构建 GET 请求 【2.3.1】 基本用法【2.3.2】 二进制数据抓取 【2.3.3】 添加 headers 【2.4】 requests 构建 POST 请求 【2.5】 requests 高级用法 【2.5.1】 上传文件 【2.5.2】 使用 Cookies 【2.5.3】 会话维持 【2.5.4】 SSL 证书验证 【2.5.5】 设置代理 【2.5.6】 超时设置【2.1】 requests 简介 在 Python 中有两种方式可以发送 HTTP 请求分别是自带的 urllib 库和第三方的 requests 库 requests 模块需要使用 pip install 命令安装安装相比 urllib它的 API 更加人性化使用requests 可以让 Cookies、登录验证、代理设置等操作更加简便官网介绍http://cn.python-requests.org 【2.2】 requests 基本用法 示例 import requests r requests.get(https://www.itrhx.com/) print(type(r)) print(r.encoding) print(r.status_code) print(r.cookies) print(r.json) print(r.text) print(r.content)输出结果 class requests.models.Response utf-8 200 RequestsCookieJar[] bound method Response.json of Response [200] !DOCTYPE html html headmeta charsetutf-8......r.encoding服务器内容使用的文本编码r.status_code响应状态码200 代表成功4xx 代表客户端错误5xx 服务器响应错误r.cookies返回 Cookiesr.jsonRequests 内置 JSON 解码器r.text服务器响应内容根据响应头部的字符编码自动解码r.content字节方式的响应体自动解码 gzip 和 deflate 编码的响应。 【2.3】 requests 构建 GET 请求 【2.3.1】 基本用法 示例 import requestsdata {name: TRHX,age: 20 } r requests.get(http://httpbin.org/get, paramsdata) print(编码后的URL, r.url) print(字符串方式的响应体, r.text)输出结果 编码后的URL http://httpbin.org/get?nameTRHXage20 字符串方式的响应体 {args: {age: 20, name: TRHX}, headers: {Accept: */*, Accept-Encoding: gzip, deflate, Host: httpbin.org, User-Agent: python-requests/2.22.0}, origin: 171.115.102.230, 171.115.102.230, url: https://httpbin.org/get?nameTRHXage20 }【2.3.2】 二进制数据抓取 以抓取 GitHub 站点图标为例 import requestsr requests.get(https://github.com/favicon.ico) with open(favicon.ico, wb) as f:f.write(r.content)该代码将会保存站点图标到本地其他的比如音频视频文件都是由二进制码组成的皆可使用该方法 【2.3.3】 添加 headers headers 的作用部分页面禁止 Python 爬虫对其进行爬取而添加 headers 就可以模拟成浏览器取访问网站实现数据的爬取headers 可以在任意网页 F12 检查控制台里面找到headers 最重要的是 “User-Agent” 字段 以为例知乎只有加了 headers 才能正常爬取否则会返回 400 Bad Request 没有任何数据 import requestsheaders {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36 } r requests.get(https://www.zhihu.com/explore, headersheaders) print(r.text)【2.4】 requests 构建 POST 请求 示例 import requestsdata {name: TRHX, age: 20} r requests.post(http://httpbin.org/post, datadata) print(r.text)输出结果 {args: {}, data: , files: {}, form: {age: 22, name: germey}, headers: {Accept: */*, Accept-Encoding: gzip, deflate, Content-Length: 18, Content-Type: application/x-www-form-urlencoded, Host: httpbin.org, User-Agent: python-requests/2.22.0}, json: null, origin: 171.115.102.230, 171.115.102.230, url: https://httpbin.org/post }有关 POST 和 GET 两种请求的一些区别 POST 更加安全不会作为 URL 的一部分不会被缓存保存在服务器日志、以及浏览器浏览记录中POST 发送的数据更大GET 有 URL 长度限制POST 可以发送更多的数据类型GET 只能发送 ASCII 字符POST 比 GET 慢POST 查询参数在 WebForms 保存GET 查询参数在 QueryString 保存POST 用数据的修改和写入GET 一般用于搜索排序和筛选之类的操作。 【2.5】 requests 高级用法 【2.5.1】 上传文件 示例 import requestsfiles {file: open(test.png, rb)} r requests.post(http://httpbin.org/post, filesfiles) print(r.text)输出结果 {args: {}, data: , files: {file: data:application/octet-stream;base64,iVBOR......}, form: {}, headers: {Accept: */*, Accept-Encoding: gzip, deflate, Content-Length: 81383, Content-Type: multipart/form-data; boundarye36a8686cd77c79dc02bfe9d1b010f08, Host: httpbin.org, User-Agent: python-requests/2.22.0}, json: null, origin: 171.115.102.230, 171.115.102.230, url: https://httpbin.org/post }【2.5.2】 使用 Cookies 对于需要登录后才能获取数据的网页可以将账号登录的 Cookies 添加到 headers 来实现网页登录爬取Cookies 可以抓包获取代码示例 import requestsheaders {Cookie: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx,Host: www.zhihu.com,User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36, } r requests.get(https://www.zhihu.com, headersheaders) print(r.text)【2.5.3】 会话维持 背景介绍利用 get() 或者 post() 方法来模拟网页请求相当于是不同的会话可以理解为用两个浏览器打开了不同的网页 运用场景首先使用 post() 方法登录网页然后再使用 get() 方法请求某个页面信息如果不利用会话维持将无法获取页面数据 维持方法①两次请求设置一样的 cookies缺点繁琐②使用 Session 对象。 Session 对象使用示例 import requestss requests.Session() s.get(http://httpbin.org/cookies/set/number/123456789) r s.get(http://httpbin.org/cookies) print(r.text)输出结果成功获取到设置的 cookies {cookies: {number: 123456789} }【2.5.4】 SSL 证书验证 SSL 证书是数字证书的一种由受信任的数字证书颁发机构 CA 在验证服务器身份后颁发具有服务器身份验证和数据传输加密功能网站带有 HTTPS 就表明有 SSL 证书 requests 提供了证书验证的功能。当发送 HTTP 请求的时候它会检查 SSL 证书verify 参数可以控制是否检查此证书。如果不加 verify 参数默认为 True会自动验证。当一个页面的 SSL 证书没有被官方机构认证时打开页面就会提示“您的连接不是私密连接”如果没有设置 verify 参数将会报以下错误 requests.exceptions.SSLError: (bad handshake: Error([(SSL routines, tls_process_server_certificate, certificate verify failed)],),)设置 verify 参数代码示例 import requestsresponse requests.get(https://www.itrhx.com, verifyFalse) print(response.text)【2.5.5】 设置代理 为什么要设置代理某些网页有反爬虫机制频繁请求网页就会出现验证码等还有可能直接封掉 IP导致爬取失败这种情况下就可以设置 proxies 参数。 示例 import requestsproxies {http: http://10.10.1.10:1010,https: http://10.10.1.10:1020, }requests.get(https://www.itrhx.com, proxiesproxies)免费代理可在西刺代理找到 【2.5.6】 超时设置 与 urllib.request.urlopen() 类似requests 也可以设置 timeout 参数请求分为两个阶段连接和读取 设置连接和读取时间总和 import requestsr requests.get(https://www.itrhx.com, timeout1) print(r.status_code)分别设置连接和读取时间 import requestsr requests.get(https://www.itrhx.com, timeout(5, 10)) print(r.status_code)永久等待 import requests# 两种方法实现 # r requests.get(https://www.itrhx.com) r requests.get(https://www.itrhx.com, timeoutNone) print(r.status_code)
http://www.yutouwan.com/news/409243/

相关文章:

  • 做前后端网站教程wordpress怎么自动更新网站地图
  • 怎么用网站做文案包头seo排名
  • 十大室内设计网站wordpress城市插件
  • 西安给大学做网站公司北京做公司网站公司
  • APP网站建设开发企业发展如何建立微网站
  • 时代网站管理系统怎么做网站大数据营销获客
  • 企业网站 源码 开源wordpress幻灯片图片主题
  • 做网站几个步骤织梦医院网站源码
  • 襄阳网站建设关于飞鱼wordpress免费简约模板
  • 手机php网站开发济南城市建设职业学院官网招生网
  • 厦门做网站哪家强王烨乐清
  • 张家界建设网站的公司工程建设标准化网站
  • 网站下方一般放什么百度网址大全官网下载
  • 拨号地址怎么做网站国内做进口的电商网站
  • 查询个人信息的网站怎么在百度推广
  • 建设银行网站打不开怎么办海鲜网站模板
  • 汕头做网站优化公司免费备案域名
  • 快速搭建网站软件wordpress实例教程
  • 托管网站是什么意思昆明软件开发公司
  • 邯郸现代建设集团网站怎样学做网站运营
  • 加强理想信念教育主题网站建设百度关键词竞价价格查询
  • 别人的抖音网站是怎么做的北京app制作公司
  • 网上免费注册qq网站高端网站设计官网
  • 网站seo推广计划广东东莞智通人才招聘网
  • 网站建设win2012本地部署iis部署网站
  • 专门做创意桌椅的网站wordpress 主题logo
  • 珠海 电商 网站建设安康市集约化平台
  • 网站发布服务托管器建网站要服务器
  • 做网站赚不了钱海南海口网站开发公司
  • 给个人建网站的公司东坑镇仿做网站