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

湖北最专业的公司网站建设平台阳春网站建设

湖北最专业的公司网站建设平台,阳春网站建设,深圳软件培训机构排名榜,开发公司法人和项目负责人质量安全责任制度目录 1. 简介2. 安装3. 发送请求4. 处理响应5. IP代理6. Cookie登录参考文献 原文地址#xff1a;https://program-park.top/2023/10/27/reptile_4/ 本文章中所有内容仅供学习交流使用#xff0c;不用于其他任何目的#xff0c;严禁用于商业用途和非法用途#xff0c;否则由… 目录 1. 简介2. 安装3. 发送请求4. 处理响应5. IP代理6. Cookie登录参考文献 原文地址https://program-park.top/2023/10/27/reptile_4/ 本文章中所有内容仅供学习交流使用不用于其他任何目的严禁用于商业用途和非法用途否则由此产生的一切后果均与作者无关。 1. 简介 Requests 是用 Python 编写基于 urllib采用 Apache2 Licensed 开源协议认证的 HTTP 库。它支持 HTTP 连接保持和连接池、cookie 保持会话、文件上传、自动响应内容编码以及国际化的 URL 和 POST 数据自动编码等比 urllib 更加方便简洁在日常开发中可以节约我们大量的时间。   这是 Requests 官网的描述 官方文档 https://requests.readthedocs.io/projects/cn/zh_CN/latest/ 快速上手 https://requests.readthedocs.io/projects/cn/zh_CN/latest/user/quickstart.html 2. 安装 因为是第三方库所以我们需要使用 pip 下载 pip install requests使用时直接导入 requests 模块即可 import requests3. 发送请求 首先我们先从最简单的 HTTP 请求开始发送一个 GET 请求到指定的 URL获取响应数据 import requestsurl https://www.baidu.com/s headers {User-Agent : Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.5112.102 Safari/537.36 Edg/104.0.1293.63 } data {wd: 北京 } response requests.get(url url, headersheaders, paramsdata) print(response.text)除了发送 GET 请求我们还可以发送其他类型的请求例如 POST 请求 import requestsurl http://fanyi.baidu.com/sug headers {User-Agent : Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.5112.102 Safari/537.36 Edg/104.0.1293.63 } data {kv: eye } response requests.post(urlurl, headersheaders, datadata) print(response.text)这里需要注意的是Get 请求的参数名字是paramsPost 请求的参数名字是data。   我们正常在发送请求时会带上一些请求参数比如 params、data、json、files、timeout、headers、cookies 等等下面是常用参数的具体说明 参数释义示例url请求的 URL 地址必选参数urlhttp://program-park.topparamsurl 请求的参数dict 字典一般用于 get 请求post 请求也可用params{‘key1’:‘value1’, ‘key2’:‘value2’}datapost 请求的参数字典dict 或文件类对象file-like objectdata{‘key1’:‘value1’, ‘key2’:‘value2’}jsonpost 请求的 json 参数json{‘key1’:‘value1’, ‘key2’:‘value2’}filespost 请求文件流数据字典上传files{‘file’:open(‘report.xls’, ‘rb’)} 或 files{‘file’: (‘report.xls’, open(‘report.xls’, ‘rb’), ‘application/vnd.ms-excel’, {‘Expires’:‘0’})}timeout请求响应的最长等待时间。默认 Nonetimeout5headershttp 请求头HTTP Headers信息headers{‘user-agent’:‘my-app/0.0.1’}cookies字典 dict 或 cookie 对象cookie{‘cookie_are’:“working”}verify默认 True为 False 时忽略对 SSL 证书的验证还可以接收 SSL 证书的路径为会话加载 SSL 证书。verifyFalsecert指定一个班底证书用作客户端证书可以是单个文件或一个包含两个文件路径的元组本地的私有 key 必须是解密状态cert(‘/path/client.cert’, ‘/path/client.key’) 或 cert(‘/path/client.pem’)authHTTP 验证信息from requests.auth import HTTPBasicAuthauth HTTPBasicAuth() 当然Requests 支持的请求方式不只这两种 requests.post() requests.put() requests.delete() requests.head() requests.options()4. 处理响应 说完发送请求的相关知识点下面就是接收到响应后如何做处理了Requests 库提供了丰富的方法来处理响应数据 属性或方法说明apparent_encoding编码方式close()关闭与服务器的连接content返回响应的内容以字节为单位cookies返回一个 CookieJar 对象包含了从服务器发回的 cookieelapsed返回一个 timedelta 对象包含了从发送请求到响应到达之间经过的时间量可以用于测试响应速度。比如 r.elapsed.microseconds 表示响应到达需要多少微秒。encoding解码 r.text 的编码方式headers返回响应头字典格式history返回包含请求历史的响应对象列表urlis_permanent_redirect如果响应是永久重定向的 url则返回 True否则返回 Falseis_redirect如果响应被重定向则返回 True否则返回 Falseiter_content()迭代响应iter_lines()迭代响应的行json()返回结果的 JSON 对象 (结果需要以 JSON 格式编写的否则会引发错误)links返回响应的解析头链接next返回重定向链中下一个请求的 PreparedRequest 对象ok检查 “status_code” 的值如果小于400则返回 True如果不小于 400则返回 Falseraise_for_status()如果发生错误方法返回一个 HTTPError 对象reason响应状态的描述比如 “Not Found” 或 “OK”request返回请求此响应的请求对象status_code返回 http 的状态码比如 404 和 200200 是 OK404 是 Not Foundtext返回响应的内容unicode 类型数据url返回响应的 URL 这里我就不做演示了都是些很基础的方法上手一试便知。 5. IP代理 Requests 基础的发送请求、处理响应说完之后还需讲一下如何使用代理 IP 来发送请求这个之前在 urllib 的教程中也说过就直接上代码了在快代理https://www.kuaidaili.com/free/白嫖个能用的代理做个示例 import requestsurl http://www.baidu.com/s? headers {User-Agent : Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.5112.102 Safari/537.36 Edg/104.0.1293.63 } data {wd: ip } proxy {http: http://101.200.185.203:16816 } response requests.get(urlurl, headersheaders, paramsdata, proxiesproxy) content response.text with open(daili.html, w, encodingutf-8) as fp:fp.write(content)6. Cookie登录 Cookie 是一种保存在电脑上的一种文件当我们使用电脑进行浏览网页的时候服务器就会生成一个证书并且返回给我们的电脑这个证书就是 Cookie一般情况下Cookie 是服务器写入客户端的文件我们也可以叫浏览器缓存。   一般情况下网站是通过 Cookie 对请求进行保存会根据用户进行特定的内容进行展示也可以对密码进行存储Cookie 文件是以浏览器为载体并且有浏览器为支撑我们可以在浏览器中设置阻止这样的话服务器就不能写进 Cookie现在很多浏览器都是能支持 Cookie不过有些时候网站访问不支持 Cookie 的话会出现浏览器不能访问的情况。   这里结合登录古诗文网https://www.gushiwen.cn/的案例来讲解如何使用 Requests 实现 Cookie 登录。使用 Requests 处理 Cookie 有三种方法 Cookie 字符串放在 headers 中Cookie 字典放在请求方法requests.get()中作为参数接收使用 Requests 提供的 session() 方法。 我这里就只讲解第三个方法因为前两个都需要手动添加 Cookie一般企业开发用不到。Requests 提供了一个叫session()的方法来实现客户端和服务端的会话保持会话保持主要作用是保存 Cookie下次请求会带上上次的 Cookie以及实现和服务端的长连接加快请求速度。使用方法 session requests.session() response session.get(url,headers)那么话不多说直接上案例代码 import requests# 古诗文官网的登录地址 url https://so.gushiwen.cn/user/login.aspx?fromhttp://so.gushiwen.cn/user/collect.aspx headers {User-Agent : Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.5112.102 Safari/537.36 Edg/104.0.1293.63 }# 获取页面源码 response requests.get(urlurl, headersheaders) content response.text# 解析页面源码获取__VIEWSTATE和__VIEWSTATEGENERATOR from bs4 import BeautifulSoupsoup BeautifulSoup(content, lxml)# 获取__VIEWSTATE viewstate soup.select(#__VIEWSTATE)[0].attrs.get(value) # 获取__VIEWSTATEGENERATOR viewstategenerator soup.select(#__VIEWSTATEGENERATOR)[0].attrs.get(value) # 获取验证码图片 code soup.select(#imgCode)[0].attrs.get(src) code_url https://so.gushiwen.cn code# 会话保持 seeion requests.session() # 验证码的url内容 response_code seeion.get(code_url) content_code response_code.contentwith open(code.jpg, wb) as fp:fp.write(content_code)# 获取验证码后保存到本地观察验证码后输入 code_name input(输入验证码)# 点击登录 url_post https://so.gushiwen.cn/user/login.aspx?fromhttp%3a%2f%2fso.gushiwen.cn%2fuser%2fcollect.aspx data_post {__VIEWSTATE: viewstate,__VIEWSTATEGENERATOR: viewstategenerator,from: http://so.gushiwen.cn/user/collect.aspx,email: lkm869666126.com,pwd: XXXXXX,code: code_name,denglu: 登录 }response_post seeion.post(urlurl, headersheaders, datadata_post) content_post response_post.textwith open(gushiwen.html, w, encodingutf-8) as fp:fp.write(content_post)观察上面的案例可以发现在登录过程中有一个图片验证码需要输入我们这里是将图片保存到本地手动输入图片的验证码接着再登录。其实在实际的企业开发中这一步也是需要我们自动化去完成的一般都是结合一些第三方打码平台一般都是收费的来调用接口自动输入验证码。比如超级鹰https://www.chaojiying.com/这里会有自己的开发文档里面有各个语言的 Demo这个我就不详细说了官网都是傻瓜式教程。 参考文献 【1】https://requests.readthedocs.io/projects/cn/zh_CN/latest/   【2】https://requests.readthedocs.io/projects/cn/zh_CN/latest/user/quickstart.html   【3】https://cloud.tencent.com/developer/article/2345961   【4】https://zhuanlan.zhihu.com/p/366457854   【5】https://blog.csdn.net/ctrlthh/article/details/133820373   【6】https://www.runoob.com/python3/python-requests.html   【7】https://www.cnblogs.com/lanyinhao/p/9634742.html   【8】https://zhuanlan.zhihu.com/p/137649301   【9】https://zhuanlan.zhihu.com/p/33288426   【10】https://www.bilibili.com/video/BV1Db4y1m7Ho?p84   【11】https://www.php.cn/faq/413706.html   【12】https://blog.51cto.com/u_14691/6678457
http://www.pierceye.com/news/139721/

相关文章:

  • 民治营销网站专业网站建设价格最优
  • 免费的html网站做柜子喜欢上哪些网站看
  • 网站没备案怎么做加速现代装修风格三室两厅效果图
  • 互助平台网站建设网上商城怎么购物
  • 百度知道山东网站建设建设网站成本预算
  • 人人做免费网站网站建站是 什么
  • 以背景做网站视频为单位网站建设实施方案
  • 简洁大气企业网站模板西安个人做网站
  • 做一个网站需要到哪里做辽宁同鑫建设网站
  • 开发网站监控推荐扬中市建设局网站
  • 手机网站根目录简述一个网站设计的主要步骤
  • 网站改版seo建议网页设计师的能力
  • 网站上线前应该备案吗温州网站建设风格
  • 网站建设书籍免费聊城市东昌府区建设路小学网站
  • 网站标题优化怎么做找人一起做素材网站
  • 如何创建个人网站模板用织梦做模板网站
  • 平台建站建设做网站一定要有营业执照吗
  • 如何把学校网站建设好天猫店铺购买
  • 网站的建设和推广企业网站建设的主要目的是
  • html5 公众号 网站开发工程公司名称
  • 公司做网站那家好网站二维码怎么制作
  • 鼓楼区建设房产和交通局网站网站全屏图片怎么做
  • 外贸订单流失严重番禺网站建设优化推广
  • 做网站送邮箱电商网站建设行情
  • f2c网站建设珠海手机网站建设费用
  • 网站建设的策划书wordpress相册代码
  • 直播网站创做上海网站制作公司哪
  • 如何承接网站建设外包昆明专业网站设计公司
  • 网站做关键词库的作用trellis wordpress
  • 建设一个网站需要哪些硬件设备关键词查询爱站网