import urllib.request as libreq with libreq.urlopen('http://export.arxiv.org/api/query?search_query=au:del_maestro+AND+ti:checkerboard') as url: r = url.read() print(r)
A URL for the resolved DOI to an external resource if present.
primary_category
The result's primary arXiv category. See arXiv: Category Taxonomy[4].
categories
All of the result's categories. See arXiv: Category Taxonomy.
links
Up to three URLs associated with this result, as arxiv.Links.
pdf_url
A URL for the result's PDF if present. Note: this URL also appears among result.links.
上述搜索脚本在终端打印出如下结果:
http://arxiv.org/abs/2110.11040v1 -> InterpolationSLAM: A Novel Robust Visual SLAM System in Rotational Motion http://arxiv.org/abs/2110.10329v1 -> SLAM: A Unified Encoder for Speech and Language Modeling via Speech-Text Joint Pre-Training http://arxiv.org/abs/2110.09156v1 -> Enhancing exploration algorithms for navigation with visual SLAM http://arxiv.org/abs/2110.08977v1 -> Accurate and Robust Object-oriented SLAM with 3D Quadric Landmark Construction in Outdoor Environment http://arxiv.org/abs/2110.08639v1 -> Partial Hierarchical Pose Graph Optimization for SLAM http://arxiv.org/abs/2110.07546v1 -> Active SLAM over Continuous Trajectory and Control: A Covariance-Feedback Approach http://arxiv.org/abs/2110.06541v2 -> Collaborative Radio SLAM for Multiple Robots based on WiFi Fingerprint Similarity http://arxiv.org/abs/2110.05734v1 -> Learning Efficient Multi-Agent Cooperative Visual Exploration http://arxiv.org/abs/2110.03234v1 -> Self-Supervised Depth Completion for Active Stereo http://arxiv.org/abs/2110.02593v1 -> InterpolationSLAM: A Novel Robust Visual SLAM System in Rotating Scenes
with open(filename,"r") as f: content = f.read() ifnot content: data = {} else: data = json.loads(content)
md_filename = "README.md"
# clean README.md if daily already exist else create it with open(md_filename,"w+") as f: pass
# write data into README.md with open(md_filename,"a+") as f:
f.write("## Updated on " + DateNow + "\n\n")
for keyword in data.keys(): day_content = data[keyword] ifnot day_content: continue # the head of each part f.write(f"## {keyword}\n\n") f.write("|Publish Date|Title|Authors|PDF|\n" + "|---|---|---|---|\n") # sort papers by date day_content = sort_papers(day_content)
for _,v in day_content.items(): if v isnotNone: f.write(v)
GitHub Actions help you automate tasks within your software development life cycle. GitHub Actions are event-driven, meaning that you can run a series of commands after a specified event has occurred. For example, every time someone creates a pull request for a repository, you can automatically run a command that executes a software testing script.
”
简而言之,GitHub Actions由Events驱动,可实现任务自动化。
基本概念
GitHub Actions 有一些自己的术语[10],[9]。
workflow (工作流程):持续集成一次运行的过程,就是一个 workflow;
job (任务):一个 workflow 由一个或多个 jobs 构成,含义是一次持续集成的运行,可以完成多个任务;
step(步骤):每个 job 由多个 step 构成,一步步完成;
action (动作):每个 step 可以依次执行一个或多个命令(action);
部署
登陆自己的Github账号,新建一个仓库,如cv-arxiv-daily,点击Actions,然后点击Set up this workflow,如下图所示:
# Controls when the workflow will run on: # Allows you to run this workflow manually from the Actions tab workflow_dispatch: schedule: -cron:"* 12 * * *"# Runs every minute of 12th hour env:
GITHUB_USER_NAME:your_github_id# your github id GITHUB_USER_EMAIL:your_email_addr# your email address
# A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: # This workflow contains a single job called "build" build: name:update # The type of runner that the job will run on runs-on:ubuntu-latest
# Steps represent a sequence of tasks that will be executed as part of the job steps: -name:Checkout uses:actions/checkout@v2