ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

一种简单粗暴的网页代理模式

一种简单粗暴的网页代理模式

一般的网站代理都是使用socks5等代理协议,有时候可靠性不是那么好。本文介绍一种简单粗暴的网页代理模式,可以完成网页的基本浏览功能。

  • 实现原理
    非常简单,代理端只需要运行playwright、selenium等网页自动化工具,后台运行真正的浏览器(无头的),这样用户端在访问网页时,代理端真正的访问目标网址,然后把访问截图返回给用户,用户在截图上就当作真正的网页操作,包括点击和输入文本等操作。
  • 访问网页
    如下面示例代码所示,只需要把截图存在文件中,用户端访问此图片文件即可。
	def screenshot(self)->bytes:'''获取当前网页截图'''print('开始截图...')self.playwright.screenshot(path=self.screenshot_filename)print('已完成截图.')from starlette.responses import StreamingResponse,FileResponse#screenshot_bytes = self.playwright.page.screenshot(full_page=True)#return StreamingResponse(iter([screenshot_bytes]))return FileResponse(self.screenshot_filename)
  • 鼠标点击操作
	def on_click(self,x:str,y:str)->None:'''点击坐标'''self.playwright.page.mouse.click(int(x),int(y)) 
  • 输入文本操作
	def type_text(self,text:str)->str:'''输入文本'''self.playwright.page.keyboard.type(text)

最终效果如下图所示:
image

返回列表