playwright——实现wb客户端

class WeiboClient:
    def __init__(
            self,
            timeout=10,
            proxies=None,
            *,
            headers: Dict[str, str],
            playwright_page: Page,
            cookie_dict: Dict[str, str],
    ):
        self.proxies = proxies
        self.timeout = timeout
        self.headers = headers
        self._host = "https://m.weibo.cn"
        self.playwright_page = playwright_page
        self.cookie_dict = cookie_dict

看起来你定义了一个名为WeiboClient的类,用于与微博进行交互。在类的初始化方法中,你接受了一些参数,包括超时时间、代理、请求头、Playwright的页面对象以及Cookie字典。

通过这些参数,你可以在实例化WeiboClient对象时指定超时时间、代理设置、请求头信息、Playwright页面对象以及Cookie信息。这样的设计使得你可以在不同的情境下灵活地配置WeiboClient对象,以满足不同的需求。

    async def request(self, method, url, **kwargs) -> Any:
        async with httpx.AsyncClient(proxies=self.proxies) as client:
            response = await client.request(
                method, url, timeout=self.timeout,
                **kwargs
            )
        data: Dict = response.json()
        if data.get("ok") != 1:
            utils.logger.error(f"[WeiboClient.request] request {
     method}:{
     url} err, res:{
     data}")
            raise DataFetchError(data.get("msg", "unkonw error"))
        else:
            return data.get("data", {
   })

这段代码定义了一个名为request的异步方法,用于发送HTTP请求。在这个方法中,你使用了httpx库创建了一个异步客户端,并发送了一个HTTP请求。你还检查了响应的JSON数据,并根据其中的"ok"字段来判断请求是否成功。

如果请求成功,你返回了响应数据中的"data"字段;如果请求失败,你记录了错误日志并抛出了一个DataFetchError异常,异常信息为响应数据中的"msg"字段或默认值"unknown error"。

这个方法的设计使得你可以通过WeiboClient对象发送各种类型的HTTP请求,并对响应进行处理

    asyn
  • 19
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值