首页 > 其他分享 >Splash与requests结合

Splash与requests结合

时间:2023-07-05 22:58:14浏览次数:32  
标签:render url resp html Splash base requests 结合

Splash与requests结合

image-20220728163813756

image-20220803170316706

render.html

此接口用于获取JavaScript渲染的页面的HTML代码,接口地址就是Splash的运行地址加此接口名称,例如http://localhost:8050/render.html

import requests


def func1():
  '''
   render.html  返回一个html结果
   '''
  url = 'https://www.xxxxx.com/'
  headers = {'User-Agent': UserAgent().random}
  base_url =f'http://localhost:8050/render.html?url={url}&wait=1'
  resp = requests.get(base_url,headers=headers)
  with open('temp.html','wb') as f:
    f.write(resp.content)

render.png

此接口可以获取网页截图

import requests
 
def func2():
  '''
   render.png 返回一个截图
   '''
  url = 'https://www.xxxxx.com/'
  headers = {'User-Agent': UserAgent().random}
  base_url =f'http://localhost:8050/render.png?url={url}&wait=1'
  resp = requests.get(base_url,headers=headers)
  with open('temp.png','wb') as f:
    f.write(resp.content)

execute

最为强大的接口。前面说了很多Splash Lua脚本的操作,用此接口便可实现与Lua脚本的对接

import requests
from urllib.parse import quote
 
def func3():
  '''
   execute 执行lua脚本,返回相应的结果
   '''
  url = 'https://www.xxxxxx.com/'
  lua = f'''
   function main(splash,args)
     splash:go("{url}")
     splash:wait(1)
     return splash:html()
   end
   '''
  base_url = f'http://localhost:8050/execute?lua_source={quote(lua)}'
  resp = requests.get(base_url)
  with open('temp.html','wb') as f:
    f.write(resp.content)

 

标签:render,url,resp,html,Splash,base,requests,结合
From: https://www.cnblogs.com/jiangjiayun/p/17530522.html

相关文章

  • Splash与Scrapy结合
    Splash与Scrapy结合scrapy-splash教程—splash中文文档0.1文档https://splash-cn-doc.readthedocs.io/zh_CN/latest/scrapy-splash-toturial.html安装scrapy-splash库pipinstallscrapy-splash==0.8.0配置splash服务(以下操作全部在settings.py)使用splash解析,要在配......
  • 从头学Java17-Stream API(二)结合Record、Optional
    StreamAPIStreamAPI是按照map/filter/reduce方法处理内存中数据的最佳工具。本系列教程由Record讲起,然后结合Optional,讨论collector的设计。使用Record对不可变数据进行建模Java语言为您提供了几种创建不可变类的方法。可能最直接的是创建一个包含final字段的final类。......
  • requests.exceptions.ProxyError: HTTPSConnectionPool(host='xxx', port=443)
    #绕过系统设置的代理#方法一:session=requests.Session()session.trust_env=Falseresponse=session.get('http://ff2.pw')#方法二:(多人亲测可以直接结局这个问题)proxies={"http":None,"https":None}requests.get("http://ff2.pw",proxi......
  • python requests
    参考资料菜鸟Pythonrequests模块PythonRequests库进阶用法——timeouts,retries,hooks中文文档地址:http://cn.python-requests.org/zh_CN/latest/英文文档地址:https://2.python-requests.org/en/master/api/后台接口packagecom.laolang.shop.modules.admin.controller;imp......
  • 结合静态与动态分析优势范围的fuzzer:Arbiter
    对于Arbier这款新型fuzzer的研究,目前网络上几乎没有内容,因此大部分内容的直接来源于Arbier的论文《Arbiter:BridgingtheStaticandDynamicDivideinVulnerabilityDiscoveryonBinaryPrograms》,该论文随着2022年8月的USENIX安全研讨会的论文集中发表。1.引言当前最先......
  • [OSPP开源之夏-2023] 结合NWR实现Flexible Raft
    FeatureName:ImplementingFlexibleRaftwithNWRAuthor:yzw1294566108@qq.comDate:2023-06-28IssueLink:https://github.com/sofastack/sofa-jraft/issues/1003Summary我们希望在原始RAFT算法的基础上,让Leader选举和日志复制除了能需要获得多数派确认模型的支持之......
  • SAM与Prompt的结合
    1.SAM介绍由MetaAIResearch开发的Segmentanythingmodel(简称SAM)最近引起了广泛的关注。SAM在超过10亿个mask的大型分割数据集上进行了训练,能够在特定的图像上分割任何对象。在最初的SAM工作中,作者们使用了零样本迁移任务(如边缘检测)来评估SAM的性能。最近,许多工作试图在各种场景......
  • python + requests:请求头('Content-Type': 'multipart/form-data'),并且files和其他参数
    解释1.在使用'Content-Type':'multipart/form-data'上传文件时,你需要将文件作为请求体的一部分进行传输。而由于文件可能非常大,因此需要将文件分成多个部分进行传输。这就需要使用多部分编码(MultipartEncoding)来将文件分割成多个部分,并将每个部分与其它的表单数据一起打包到一......
  • requests库的100种妙用!
    Python的requests库是一个功能强大且广泛使用的HTTP请求库,用于在Python中发送HTTP请求、处理响应、会话管理、Cookie处理以及处理文件上传和下载等方面提供了强大的功能,总的来说,就是:可能有的小可爱不是很能直观了解,今天,我们就一起来看看,requests库到底能做什么。1.发送HTTP请求最被......
  • Splash反爬
    为什么要反爬爬虫:使用任何技术手段,批量获取网站信息的一种方式。关键在于批量反爬虫:使用任何技术手段,阻止别人批量获取自己网站信息的一种方式。关键也在于批量因爬虫的访问频率过高影响服务器的运行影响别人业务导致服务器宕机单一的DoS攻击一般是采用一对一方式的......