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

做网站是什么样的工作百度app安装免费下载

做网站是什么样的工作,百度app安装免费下载,网站ftp空间,php网页设计教程开篇 本文整理自《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://www.dtcms.com/wzjs/31321.html

相关文章:

  • 什么网站发布公司销售潍坊关键词优化平台
  • 适合学生做网页练习的网站培训机构管理系统哪个好
  • 凤岗网站建设网站域名查询ip地址
  • 网站页面改版降权首页百度
  • 徐州网站建设培训班长沙seo步骤
  • 域名注册了 如何做网站百度怎么精准搜关键词
  • 什么网站可以免费做视频的软件下载北京网站优化服务商
  • 用PYTHON3 做网站百度竞价品牌广告
  • 山东企业网站备案网络营销专业代码
  • 网站服务内容怎么写域名网
  • 中山网站建设与设计提高工作效率的措施
  • 通州免费网站建设军事新闻 今日关注
  • 甘肃兰州旅游攻略seo实战技巧100例
  • 网站建设与维护的软件互联网宣传方式有哪些
  • 淅川微网站建设百度热门搜索排行榜
  • 购物网站备案费用什么是关键词广告
  • 网站建设销售实训报告南宁seo规则
  • 青海省建设厅职业注册官方网站广东企业网站seo报价
  • 织梦网站防止注入网络培训seo
  • 自己做网站 有名6推广方案怎么做
  • 域名解析到网站安徽seo
  • 国外优秀网站设计欣赏长春seo排名收费
  • 安阳市网站建设的公司今日nba比赛直播
  • 网站解除域名绑定网站整合营销推广
  • 常州营销网站建设最新热点新闻事件素材
  • 全球速卖通站长工具之家seo查询
  • 域名网站有哪些山东自助seo建站
  • 台州做网站比较好的有哪些百度推广的步骤
  • 电子兼职网站建设东莞企业网站推广
  • 室内装修设计图片阳山网站seo