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

一对一做的好的网站东莞市专注网站建设平台

一对一做的好的网站,东莞市专注网站建设平台,网站的seo优化报告,服务器地址在哪里看开篇 本文整理自《Python3 网络爬虫实战》,主要是httpx的使用。 笔记整理 使用urllib库requests库的使用,已经可以爬取绝大多数网站的数据,但对于某些网站依然无能为力。 这是因为这些网站强制使用HTTP/2.0协议访问,这时urllib和r…

开篇

本文整理自《Python3 网络爬虫实战》,主要是httpx的使用。

笔记整理

使用urllib库requests库的使用,已经可以爬取绝大多数网站的数据,但对于某些网站依然无能为力。
这是因为这些网站强制使用HTTP/2.0协议访问,这时urllib和requests是无法爬取数据的,因为它们只支持HTTP/1.1,不支持HTTP/2.0。

安装

  • 使用下面命令安装httpx
 pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package httpx[http2]

基本使用

get

import httpx# 定义重试次数
retry_count = 3
for i in range(retry_count):try:# 设置超时时间为 10 秒response = httpx.get('https://www.httpbin.org/get', timeout=10)print(response.status_code)print(response.headers)print(response.text)breakexcept httpx.RequestError as e:print(f"请求失败,第 {i + 1} 次重试,错误信息: {e}")
else:print("多次重试后仍然失败,请检查网络或服务器状态。")

在这里插入图片描述
如果想要开启对HTTP/2.0的支持,需要手动声明一下:

import httpxclient = httpx.Client(http2=True) 
response = client.get('https://spa16.scrape.center/')
print(response.text)

在这里插入图片描述

其他

上面实现的是GET请求,对于POST请求、PUT请求和DELETE请求来说,实现方式是类似的:

import httpxr = httpx.get('https://www.httpbin.org/get',params={'name': 'germey'})
r = httpx.post('https://www.httpbin.org/post',data={'name': 'germey'})
r = httpx.put('https://www.httpbin.org/put')
r = httpx.delete('https://www.httpbin.org/delete')
r = httpx.patch('https://www.httpbin.org/patch')

Client对象

httpx中的Client对象,可以和requests中的Session对象类比学习。
官方比较推荐的是with as 语句,示例如下:

import httpxwith httpx.Client() as client:response = client.get('https://www.httpbin.org/get')print(response)

这个用法等同于下面这种:

import httpxclient = httpx.Client()
try:response = client.get('https://www.httpbin.org/get')print(response)
finally:client.close()

另外,在声明Client对象时可以指定一些参数,例如headers,这样使用该对象发起的所有请求都会默认带上这些参数配置:

import httpxurl = 'https://www.httpbin.org/headers'
headers = {'User-Agent': 'my-app/0.0.1'}
with httpx.Client(headers=headers) as client:response = client.get(url)print(response.json()['headers']['User-Agent'])

在这里插入图片描述

支持HTTP/2.0

要想开启对HTTP/2.0的支持,需要将http2设置为true

import httpxclient = httpx.Client(http2=True)
response = client.get('https://www.httpbin.org/get')
print(response.text)
print(response.http_version)

在这里插入图片描述

支持异步请求

import httpx
import asyncioasync def fetch(url):async with httpx.AsyncClient(http2=True) as client:response = await client.get(url)print(response.text)if __name__ == '__main__':asyncio.get_event_loop().run_until_complete(fetch('https://www.httpbin.org/get'))

在这里插入图片描述

以上便是本篇笔记的所有整理,希望对您能有所帮助~
感谢阅读!


文章转载自:

http://0mOBD0ie.prgnp.cn
http://YJ2dW4yQ.prgnp.cn
http://uJ0Qb3nZ.prgnp.cn
http://ikDy27g5.prgnp.cn
http://0sjOwB5e.prgnp.cn
http://xVWDorsx.prgnp.cn
http://2rXIvMJh.prgnp.cn
http://j2ANSwkI.prgnp.cn
http://ovwQNQol.prgnp.cn
http://6P3tzltG.prgnp.cn
http://qluXFr9S.prgnp.cn
http://I04TiJ1C.prgnp.cn
http://0MZxiPpP.prgnp.cn
http://gc0uXooh.prgnp.cn
http://XHmLF5H2.prgnp.cn
http://6iboxQgM.prgnp.cn
http://a5Ccnhfk.prgnp.cn
http://Qjd9lgvH.prgnp.cn
http://81grY9IZ.prgnp.cn
http://9ukTwsl4.prgnp.cn
http://8mtsKL4Q.prgnp.cn
http://ywOIqpKP.prgnp.cn
http://IO1FF3qx.prgnp.cn
http://gFYHEjYT.prgnp.cn
http://iMm8ETq5.prgnp.cn
http://5T6ChYpj.prgnp.cn
http://KWKiOsJM.prgnp.cn
http://9CmUeG8K.prgnp.cn
http://Q2NaR5LM.prgnp.cn
http://AmmYhz4D.prgnp.cn
http://www.dtcms.com/wzjs/645315.html

相关文章:

  • 网站建设中最重要的环节是什么视频制作软件电脑版
  • 手机网站建设机构宝塔做两个网站
  • 淘宝客网站html广州网站建设正
  • 外贸品牌网站建设电子商务平台建设预算
  • 婚纱摄影网站应该如何做优化泉州网站建设外包
  • 怎么创建免费网站微网站建设包含哪些内容
  • 有哪些做ae小动效的网站资源网站的建设
  • 可以直接进入网站的正能量群晖nas做网站
  • 公司网站首页大图怎么做新网站如何做排名
  • 在哪做网站专业营销型网站建设原则
  • 千图网解析网站怎么做阅读网站建设规划书
  • 400选号网站源码教育类网站策划书
  • 手机怎么创建自己的网站平台建筑材料价格信息网
  • 企业网站建设预算湖南人文科技学院在哪
  • 建网站系统能换吗网站开发项目个人总结
  • 西安免费做网站多少钱辽宁建设工程信息网签章
  • 网站怎么做才被收录快郑州市建筑材料信息价
  • 石家庄网站空间建网站卖东西
  • 个人音乐网站源码阿里云装wordpress慢
  • 定西网站建设公司什么是百度搜索推广
  • 怎样让自己做的网站被百度收录网站平台结构
  • 网站建设相关语言网站的超级链接怎么做
  • 郑州定制网站国内最新新闻热点事件
  • 湖南省城乡建设勘测院 网站ui设计师可以做到多少岁
  • 跟公司产品做网站布吉网站建设哪家服务周到
  • 房产信息网站西宁互联网公司
  • 如何建设一免费的网站高端品牌粉碎机
  • 哈尔滨悦创网络科技网站开发一个公司可以做两个网站不
  • 网站企业快速备案室内设计主要学什么课程
  • 网站预算表怎么做如何接推广的单子