返回顶部
首页 > 资讯 > 后端开发 > Python >一款懒人必备的Python爬虫神器
  • 346
分享到

一款懒人必备的Python爬虫神器

Python爬虫神器 2023-05-14 21:05:39 346人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

前言今天把最近的一个应用做好了,测试了一下运行没有问题,剩下的就是检验一下结果如何.从光谱到Lab值通常使用matlab中的roo2lab(),不过经过我最近的测试发现转换的结果并不理想,而且这个转化的代码也不是我写的所以另寻他法,找到了下

一款懒人必备的Python爬虫神器

前言

今天把最近的一个应用做好了,测试了一下运行没有问题,剩下的就是检验一下结果如何.从光谱到Lab值通常使用matlab中的roo2lab(),不过经过我最近的测试发现转换的结果并不理想,而且这个转化的代码也不是我写的所以另寻他法,找到了下面这个网页。

一款懒人必备的Python爬虫神器

动手

有了这个网页,很简单就想到去解析.然后很快找到了这个api,可以看到用post提交表单请求就可以返回结果。

一款懒人必备的Python爬虫神器


于是一番操作,修改fORM表单,构造传入的spectrum,但是最终请求得到的却是一个页面,并不是想要的JSON.然后许久没写爬虫的我直接恼火,想到自动化工具模拟操作.可是selenium很难用而且还得去找浏览器新版本的驱动,随后直接搜索一番,发现了这个神器—playwright。

首先老规矩去它的首页看看教程

一款懒人必备的Python爬虫神器

接着安装一下playwright以及浏览器的驱动。

pip install pytest-playwright
playwright install

第二步的时候很慢,所以我只等他下载好了chrome和FFmpeg直接就ctrl+c停止了,毕竟我也用不着其他的浏览器驱动。

然后稍微浏览一下这个文档功能非常丰富,不过我用到的功能也不多,接下来的使用才是真正适合我们懒人的。

记住一行代码

python -m playwright codegen xxx.com

其中xxx.com就是我们的目标网址,运行后会创建一个熟悉的自动化页面,然后我们就进行一些我们想要的操作,比如设置开始的最小波长为400nm,然后观察以及光源改为D65/10.一系列操作后会看到对应的代码已经生成好了。

一款懒人必备的Python爬虫神器

至今为止我还没有写一行代码,不过构造输入的光谱还是得自己来的。

把这一段代码复制下来,然后自己写构造输入的函数(就几行),然后通过选择器(直接左键元素复制xpath)得到lab值,这样目标就搞定了。

整体代码如下:

import time
from playwright.sync_api import Playwright, sync_playwright, expect
import numpy as np
data_test=np.loadtxt('./dist/1_res.csv',delimiter=',')
def get_str(arr):
arr_str=""
for i in arr:
arr_str+=str(format(i,".2f"))+"rn"
return arr_str
labs=[]
def run(playwright: Playwright) -> None:
browser = playwright.chromium.launch(headless=False)
context = browser.new_context()
# Open new page
page = context.new_page()
# Go to https://www.qtccolor.com/secaiku/tool/spectrum
page.goto("https://www.qtccolor.com/secaiku/tool/spectrum")
# Click div[role="tab"]:has-text("光谱数据")
page.locator("div[role="tab"]:has-text("光谱数据")").click(
# Click text=最小波长:nm
page.locator("text=最小波长:nm").click()
# Fill [placeholder="33 80"]
page.locator("[placeholder="\33 80"]").fill("400")
# Select 1964
page.locator("select[name="obs"]").select_option("1964")
# Select D65
page.locator("select[name="ill"]").select_option("D65")
# Fill textarea[name="spectrum"]
for i in range(len(data_test)):
inputs=get_str(data_test[i,:])
# Click textarea[name="spectrum"]
page.locator("textarea[name="spectrum"]").click()
page.locator("textarea[name="spectrum"]").press("Control+a")
page.locator("textarea[name="spectrum"]").fill(inputs)
# Click button:has-text("转换颜色")
page.locator("button:has-text("转换颜色")").click()
time.sleep(1)
# Click text=Lab0.000.000.00 >> td >> nth=1
L=float(page.locator('xpath=//*[@]/div[1]/div/div[2]/table/tbody/tr[2]/td[2]').inner_text())
# Click text=Lab0.000.000.00 >> td >> nth=2
a=float(page.locator('xpath=//*[@]/div[1]/div/div[2]/table/tbody/tr[2]/td[3]').inner_text())
# Click text=Lab0.000.000.00 >> td >> nth=3
b=float(page.locator('xpath=//*[@]/div[1]/div/div[2]/table/tbody/tr[2]/td[4]').inner_text())
print(L,a,b)
labs.append([L,a,b])
# ---------------------
context.close()
browser.close()
with sync_playwright() as playwright:
run(playwright)
np.savetxt('./1_lab_res.csv',labs,delimiter=",")

可以说从安装到实现就几分钟,而且特别容易上手,我第一次用也一下就能实现效果。

一款懒人必备的Python爬虫神器

剩下的就是简单的写个函数计算色差啥的就没难度了。

最后

大厂出品果然不同,使用它在不考虑运行效率(有异步但是我懒得看了)的情况下可以轻松实现复杂操作,懒人最爱!

以上就是一款懒人必备的python爬虫神器的详细内容,更多请关注编程网其它相关文章!

--结束END--

本文标题: 一款懒人必备的Python爬虫神器

本文链接: https://lsjlt.com/news/205355.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 一款懒人必备的Python爬虫神器
    前言今天把最近的一个应用做好了,测试了一下运行没有问题,剩下的就是检验一下结果如何.从光谱到Lab值通常使用matlab中的roo2lab(),不过经过我最近的测试发现转换的结果并不理想,而且这个转化的代码也不是我写的所以另寻他法,找到了下...
    99+
    2023-05-14
    Python 爬虫神器
  • python爬虫工程师必备的10个爬虫工具分别是什么
    python爬虫工程师必备的10个爬虫工具分别是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。爬虫工程师必备的10个爬虫工具爬虫工程师必备的10个爬虫工具!...
    99+
    2023-06-02
  • 懒人神器 !一个创意十足的 Python 命令行工具
    当听到某些人说 xx 库非常好用的时候,我们总是忍不住想要去亲自试试。有一些库,之所以好用,是对一些库做了更高级的封闭,你装了这个库,就会附带装了 n 多依赖库,就前一篇文章介绍的 streamlit 来说,依赖包就达 90 几个之多?比百...
    99+
    2023-05-14
    工具 Python
  • Python爬虫必备之XPath解析库的示例分析
    小编给大家分享一下Python爬虫必备之XPath解析库的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!一、简介XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进...
    99+
    2023-06-15
  • 良心推荐!Python爬虫高手必备的8大技巧!
    想要快速学习爬虫,最值得学习的语言一定是Python,Python应用场景比较多,比如:Web快速开发、爬虫、自动化运维等等,可以做简单网站、自动发帖脚本、收发邮件脚本、简单验证码识别脚本。爬虫在开发过程中也有很多复用的过程,今天就总结一下...
    99+
    2023-05-14
    Python 技巧 爬虫
  • Python必备的debug神器pdb怎么用
    这篇文章给大家介绍Python必备的debug神器pdb怎么用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。学Python 必备的debug 神器-pdb首先,介绍一下 pdb 调试,pdb 是 python 的一个内...
    99+
    2023-06-02
  • Serverless Framework 大揭秘:Node.js 开发人员必备的神器
    特性 无服务器应用程序的构建:可以通过 YAML 或 JavaScript 定义应用程序结构、事件处理程序和资源配置。 本地开发:支持本地模拟,以便在部署之前测试和调试应用程序。 部署管理:提供一键部署到 AWS、Azure 和 Goo...
    99+
    2024-03-02
    Serverless Framework, Node.js, 无服务器, 部署, 托管
  • 神器啊!比requests还好用的Python高效爬虫框架!
    最近公司 Python 后端项目进行重构,整个后端逻辑基本都变更为采用"异步"协程的方式实现。看着满屏幕经过 async await(协程在 Python 中的实现)修饰的代码,我顿时感到一脸懵逼,不知所措。虽然之前有了解过"协程"是什么...
    99+
    2023-05-14
    Python Requests 爬虫框架
  • 一款开源的Python一键抢票神器详细配置
    目录下载与依赖安装获取登陆信息配置抢票信息启动项目一些说明总结在Github上也有很多优秀的开发者开源了一些基于Python的抢票项目,比如一直很火的12306/py12306,目前...
    99+
    2024-04-02
  • ASP 容器 API 文件:开发人员必备的工具之一?
    ASP(Active Server Pages)是一种动态网页技术,它使用服务器端脚本语言来生成动态网页内容。ASP 依赖于容器来执行脚本,其中容器是一种提供脚本运行环境的组件。ASP 容器 API 文件是一种开发人员必备的工具,它提供了...
    99+
    2023-08-19
    容器 api 文件
  • Python 揭开操作系统的神秘面纱:一个程序员的必备指南
    操作系统是计算机系统的核心,管理着硬件和软件之间的交互,并为应用程序提供了一个可预测的执行环境。对于 Python 程序员来说,了解操作系统的基础知识对于开发高效、可靠的程序至关重要。 进程和线程 进程是操作系统的基本执行单元,它代表一个...
    99+
    2024-04-02
  • 使用Python编写并实现一个具备人工智能的聊天机器人(包含代码和步骤)
    聊天机器人是一种人工智能,它通过应用程序或消息来模拟与用户的对话。本文我们将使用Pytho的chatterbot库来实现聊天机器人。该库生成对用户输入的自动响应。响应基于库中实现的机器学习算法。 机器学习算法使聊天机器人在收集用...
    99+
    2024-01-22
    人工智能 机器学习
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作