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

wordpress标签的调用代码seo网站内容优化有哪些

wordpress标签的调用代码,seo网站内容优化有哪些,购物网站建设市场调查论文,网站站点地图playwright 安装优点基础示例同步代码异步代码启动不同浏览器启用本地浏览器(使用浏览器cookie信息)playwright页面接管设置环境变量和cmd启动浏览器 窗口最大化录制脚本录制脚本保存身份验证状态代码中保存身份状态信息代码中读取身份状态信息 playwrig…

playwright

    • 安装
    • 优点
    • 基础示例
      • 同步代码
      • 异步代码
      • 启动不同浏览器
      • 启用本地浏览器(使用浏览器cookie信息)
      • playwright页面接管
        • 设置环境变量和cmd启动浏览器
      • 窗口最大化
      • 录制脚本
        • 录制脚本保存身份验证状态
        • 代码中保存身份状态信息
        • 代码中读取身份状态信息
    • playwright发送api接口请求

安装

pip install pytest-playwright
playwright install

优点

  • 支持异步操作(assync_api)
  • 同步操作调用:sync_api

基础示例

同步代码

from playwright.sync_api import sync_playwrightwith sync_playwright() as playwright:browser = playwright.chromium.launch()page = browser.new_page()page.goto('https://www.baidu.com')print(page.title())browser.close()

异步代码

  • 异步代码需要两个关键字:asyncawait
  • 异步方法启动需要使用导入asyncio包,运行asyncio.run()执行main()方法。
import asyncio
from playwright.async_api import async_playwrightasync def main():async with async_playwright() as p:# headless = False : 是否启动无头模式,无头模式是不弹出浏览器,后台运行browser = await p.chromium.launch(headless=False)page = await browser.new_page()await page.goto('https://www.baidu.com')print(await page.title())await browser.close()asyncio.run(main())

启动不同浏览器

  • 浏览器默认情况下是以无痕模式启动
  • channel:“chrome”, “chrome-beta”, “chrome-dev”, “chrome-canary”, “msedge”, “msedge-beta”, “msedge-dev”, or “msedge-canary”
  • chromium:谷歌开源内核
def run(playwright: Playwright) -> None:# "chrome", "chrome-beta", "chrome-dev", "chrome-canary", "msedge", "msedge-beta", "msedge-dev", or "msedge-canary"browser = playwright.chromium.launch(headless=False, channel='msedge')context = browser.new_context()page = context.new_page()page.goto("https://www.baidu.com/")# ---------------------context.close()browser.close()with sync_playwright() as playwright:run(playwright)
  • 火狐

from playwright.sync_api import sync_playwright
with sync_playwright() as playwright:# 火狐browser_f = playwright.firefox.launch()page = browser_f.new_page()page.goto('https://www.bing.com')print(page.title())browser_f.close()

启用本地浏览器(使用浏览器cookie信息)

from playwright.sync_api import Playwright, sync_playwright
import getpassuser_data_dir = fr'C:\Users\{getpass.getuser()}\AppData\Local\Google\Chrome\User Data'def run(playwright: Playwright) -> None:context = playwright.chromium.launch_persistent_context(# 本地浏览器的数据目录user_data_dir=user_data_dir,# 指定Googlechannel='chrome',# 无头模式headless=False)page = context.new_page()page.goto("https://www.baidu.com/")page.pause()# ---------------------context.close()with sync_playwright() as playwright:run(playwright)

playwright页面接管

  • 针对场景:退出浏览器就需要重新登录,并且存在复杂的验证信息
设置环境变量和cmd启动浏览器
  1. 将起始位置添加到环境变量中,并且保证cmd命令窗口输出chrome直接启动浏览器。
    在这里插入图片描述
  2. 在cmd窗口中,输入启动命令和配置参数信息。
  • 指定端口:--remote-debugging-port=8888
  • 指定浏览器数据目录:--user-data-dir="D:\playwright_chrome_user_data"
chrome --remote-debugging-port=8888 --user-data-dir="D:\playwright_chrome_user_data"

在这里插入图片描述
3. 使用cdp链接chrome浏览器。

from playwright.sync_api import Playwright, sync_playwrightdef run(playwright: Playwright) -> None:browser = playwright.chromium.connect_over_cdp('http://localhost:8888')page = browser.contexts[0].pages[0]page.goto("https://www.baidu.com/")page.pause()# ---------------------page.close()with sync_playwright() as playwright:run(playwright)

窗口最大化

  • --start-maximized:该参数来源是chromium浏览器命令行参数列表,https://peter.sh/experiments/chromium-command-line-switches/。
  • no_viewport=True
import re
from playwright.sync_api import Playwright, sync_playwright, expectdef run(playwright: Playwright) -> None:browser = playwright.chromium.launch(headless=False, args=['--start-maximized'])context = browser.new_context(no_viewport=True)page = context.new_page()page.goto("https://www.baidu.com/")# ---------------------context.close()browser.close()with sync_playwright() as playwright:run(playwright)

录制脚本

  • 命令:
playwright codegen
  • 示例:playwright codegen https://www.baidu.com
from playwright.sync_api import Playwright, sync_playwright, expectdef run(playwright: Playwright) -> None:browser = playwright.chromium.launch(headless=False)context = browser.new_context()page = context.new_page()page.goto("http://xx.xx.xx.xx:8080/login")page.get_by_role("textbox", name="用户名").click()page.get_by_role("textbox", name="用户名").fill("admin")page.get_by_role("textbox", name="密码").click()page.get_by_role("textbox", name="密码").fill("admin123")page.get_by_role("button", name="登录").click()# ---------------------context.close()browser.close()with sync_playwright() as playwright:run(playwright)
录制脚本保存身份验证状态
  • --save-storage:会保存cookie和localStorage。
  • --load-storage:加载保存在本地的cookie信息。
  • openplaywright open启动浏览器与codegen效果相似。

保存cookie信息

playwright codegen --save-storage=auto.json

加载cookie信息

playwright open http://xx.xx.xx.xx:8080/system/user --load-storage=auto.json
代码中保存身份状态信息
  • 若导出的文件cookie信息为空,需要确认网站cookie的失效机制,是否关闭浏览器或者关闭页面即失效
from playwright.sync_api import Playwright, sync_playwright, expectdef run(playwright: Playwright) -> None:browser = playwright.chromium.launch(headless=False)context = browser.new_context()page = context.new_page()page.goto("http://xx.xx.xx.xx:8080/login")page.get_by_role("textbox", name="用户名").click()page.get_by_role("textbox", name="用户名").fill("admin")page.get_by_role("textbox", name="密码").click()page.get_by_role("textbox", name="密码").fill("admin123")page.get_by_role("button", name="登录").click()# 添加等待事件,保证登录信息的获取page.wait_for_url(url='http://xx.xx.xx.xx:8080/index')# 保存storage state 到指定的文件storage = context.storage_state(path="../auth/ry_auto.json")# ---------------------context.close()browser.close()with sync_playwright() as playwright:run(playwright)
代码中读取身份状态信息
from playwright.sync_api import Playwright, sync_playwright, expectdef run(playwright: Playwright) -> None:browser = playwright.chromium.launch(headless=False)context = browser.new_context(storage_state="state.json")

playwright发送api接口请求

@pytest.fixture(scope="session")
def api_request_context(playwright: Playwright,
) -> Generator[APIRequestContext, None, None]:headers = {# We set this header per GitHub guidelines."Accept": "application/vnd.github.v3+json",# Add authorization token to all requests.# Assuming personal access token available in the environment."Authorization": f"token {GITHUB_API_TOKEN}",}request_context = playwright.request.new_context(base_url="https://api.github.com", extra_http_headers=headers)yield request_contextrequest_context.dispose()

文章转载自:

http://m77oxgcp.sgbss.cn
http://uAcNp22d.sgbss.cn
http://PVPK6ZRG.sgbss.cn
http://z8g2n1Qt.sgbss.cn
http://UV6uYQ4U.sgbss.cn
http://6bKAVSrY.sgbss.cn
http://IN6JF6bi.sgbss.cn
http://eGOwRpXC.sgbss.cn
http://d9rrozLA.sgbss.cn
http://sl872Gkc.sgbss.cn
http://5gy9sGzp.sgbss.cn
http://KAJkdTtX.sgbss.cn
http://OSNlmZ6l.sgbss.cn
http://9SWPZxKl.sgbss.cn
http://dUbbASku.sgbss.cn
http://gQwCSeBb.sgbss.cn
http://8wL9eRkq.sgbss.cn
http://XG78RS68.sgbss.cn
http://LHLf2D9O.sgbss.cn
http://RGxreYZp.sgbss.cn
http://oip1yzzT.sgbss.cn
http://hKGXlOHw.sgbss.cn
http://3CCvekUc.sgbss.cn
http://ig6yGzra.sgbss.cn
http://czS6M2p7.sgbss.cn
http://zFG1icWD.sgbss.cn
http://h9TR5uXp.sgbss.cn
http://NrcDDED9.sgbss.cn
http://T8joBYhE.sgbss.cn
http://0OXskQEd.sgbss.cn
http://www.dtcms.com/wzjs/686349.html

相关文章:

  • 市政建设招标网站有哪些ps软件入门教程
  • 网站建设 点指成名哈尔滨建设规划局网站
  • 做网站怎么宣传中文wordpress插件
  • 网站如何做那种诱导广告网站建设维护外包
  • 崇明苏州网站建设在线app制作
  • 网站建设开发详细步骤流程电子商务平台网站建设
  • 临沂做网站的在哪里找app开发公司
  • 做电子书的网站很有名后来被关闭了兴义哪有做网站
  • 制作网站如何选择主机生活+装修 北京卫视
  • 手机微网站开发一网通办 上海
  • 网站营销活动网站开发用什么程序好
  • ui设计师工作内容怎么写免费给网站做seo
  • 邯郸哪有做网站的公司我想做一个网站怎么办
  • 移动商城网站开发wordpress 双会员系统
  • asp网站咋做dw做网站一般需要多大尺寸
  • 网站后台登陆网址是多少如何优化培训方式
  • vs2017 asp网站开发管理咨询公司排名 国内
  • 湖北响应式网站制作淅川做网站
  • 免费网站软件下载seo点击排名软件哪家好
  • 广东省住房和城乡建设局网站温州品牌推广
  • 信誉好的购物网站wordpress不显示样式
  • 设计师去哪个网站找工作微信小程序定制开发报价方案
  • 网站建设有什么好建议海外推广是什么工作
  • idea 做网站登录开发小程序商城多少钱
  • 昆凌做的广告买化妆品网站wordpress朋友圈主题
  • 企业网站主题手机网站设计图
  • 网站直播软件开发编程猫官方网站入口
  • 广告网站设计怎么样成都网站快速排名优化
  • 建设网站公司兴田德润官方地址google站长工具
  • 固镇网站建设哪家好网站内容避免被采集