Python怎么访问:轻松搞定网络数据、API和本地文件,不止入门这么简单

说实话,刚开始学Python那会儿,脑子里总有个模糊的概念,觉得它是个能干很多事的“万能钥匙”。但具体怎么访问外界?访问什么?怎么去?这些问题才是真正让人抓狂的。不是光把语法背下来就行的,得知道怎么让你的代码伸出手去,够到那些你想要的东西。

你想啊,我们平时用电脑、用手机,是不是一直在“访问”?点个网页是访问,打开个文件是访问,刷个短视频也是访问服务器传来的数据流。Python作为工具,它的强大之处很大一部分就在于,它能让你用程序的方式去完成这些“访问”,而且能做得更快、更自动化、甚至去做人手做不到的事。

最常见的访问场景?肯定绕不开网络。这年头,数据都在网上飘着。想知道某个网页说了啥?想从某个开放的API接口拿点天气预报或者股票价格?Python怎么访问这些网络资源,简直是兵家必争之地。

我记得第一次尝试用Python去“抓”网页内容的时候,感觉特神秘。就像你站在一个巨大的图书馆门口,知道里头全是宝贝,但不知道怎么进去,怎么找到你要的那本书。Python就是那个能帮你配钥匙、能帮你找到索引甚至直接把书拿给你的工具。

HTTP请求,这是访问网络最基础的方式。简单讲,就是你的Python程序扮成浏览器,向服务器发个请求说:“嘿,把那个/index.html给我看看?”或者:“我要往你这里提交点信息,你看怎么处理?”然后服务器收到请求,处理完后给个响应,把数据或者一个状态码发回来。

Python里,说到HTTP访问requests库简直是神一样的存在。初学者也好,老手也罢,处理网络请求基本都靠它。用起来那个顺滑,跟直接pip install requests然后import requests一样简单直接。

比如说,你想看看百度首页长啥样(虽然没什么抓的价值,就当练手):

```python
import requests

url = 'https://www.baidu.com'
response = requests.get(url) # 发送一个GET请求

检查状态码,200表示成功

if response.status_code == 200:
print("成功访问!")
# response.text 就是网页的HTML内容
# print(response.text[:500]) # 打印前500个字符看看
else:
print(f"访问失败,状态码: {response.status_code}")
```

你看,短短几行代码,你的Python程序就已经完成了一次网络访问。它访问了那个url,发出了一个GET请求(就像你在浏览器地址栏敲回车一样),然后拿到了服务器的**响应**。那个response对象里,包含了状态码、头部信息,当然最重要的,就是网页数据内容(response.textresponse.content)。

但这只是第一步。拿到网页HTML数据,或者从API拿到的JSON数据后,怎么从中提取你真正想要的信息?这就涉及到数据的解析了。想象你拿到一堆乱糟糟的纸,你需要从中找出你的名字和地址。对于HTML,Python有很多强大的解析库,比如BeautifulSoup或者lxml。它们能帮你把那些标签、属性理清楚,让你像用CSS选择器一样方便地定位到你需要的内容。

比如,从刚才拿到的百度首页HTML里找找标题(如果百度允许抓的话):

```python
from bs4 import BeautifulSoup

假设response.text里是网页内容

soup = BeautifulSoup(response.text, 'html.parser')

找到标签</h1> <p>title_tag = soup.title</p> <p>if title_tag:<br /> print(f"网页标题是: {title_tag.string}")<br /> else:<br /> print("没找到标题标签。")<br /> ```</p> <p>瞧,有了<strong>BeautifulSoup</strong>,原本一大坨看不懂的HTML瞬间变得有结构了,你可以通过标签名、类名、ID等等方式去<strong>访问</strong>和获取特定的元素。这不就是对<strong>数据</strong>的深度<strong>访问</strong>和提取嘛!</p> <p>如果<strong>访问</strong>的是<strong>API</strong>,通常返回的是JSON格式的<strong>数据</strong>。JSON的好处是它本身就是结构化的,<strong>Python</strong>处理起来非常得心应手,因为它跟<strong>Python</strong>的字典和列表结构是天然对应的。<code>requests</code>库拿到JSON<strong>响应</strong>后,直接用<code>response.json()</code>就能把它变成<strong>Python</strong>里的字典或列表,直接用键名就能<strong>访问</strong>到对应的值,简单粗暴又有效。</p> <p>```python</p> <h1>假设请求一个返回JSON数据的API</h1> <p>api_url = 'https://some.api.com/data' # 举例,这个URL不一定存在<br /> api_response = requests.get(api_url)</p> <p>if api_response.status_code == 200:<br /> try:<br /> data = api_response.json() # 直接解析JSON成Python对象<br /> print("成功获取API数据:")<br /> # 假设API返回的数据是 {'status': 'success', 'value': 123}<br /> print(f"状态: {data.get('status')}")<br /> print(f"数值: {data.get('value')}")<br /> except requests.exceptions.JSONDecodeError:<br /> print("获取到的不是有效的JSON数据。")<br /> else:<br /> print(f"API访问失败,状态码: {api_response.status_code}")<br /> ```</p> <p>你看,<strong>Python</strong>在<strong>访问</strong>网络<strong>数据</strong>这块,通过<code>requests</code>处理<strong>请求</strong>/<strong>响应</strong>,再配合<code>BeautifulSoup</code>解析HTML或者用<code>.json()</code>解析JSON,一套组合拳下来,几乎没有你够不到的网络<strong>数据</strong>(当然,排除那些有严格反爬机制或者需要复杂认证的)。</p> <p>除了网络,<strong>Python怎么访问</strong>本地的<strong>文件</strong>?这个更直接了。电脑里的<strong>文件</strong>是我们最触手可及的<strong>数据</strong>源。读写<strong>文件</strong>是编程的基本功,<strong>Python</strong>在这方面提供了非常简洁的接口。</p> <p>最常用的就是<code>open()</code>函数。给它一个<strong>文件</strong>路径和打开模式(比如<code>'r'</code>读,<code>'w'</code>写,<code>'a'</code>追加),它就给你一个<strong>文件</strong>对象,通过这个对象,你就可以像操作一个流一样去<strong>访问</strong><strong>文件</strong>里的内容了。</p> <p>比如,读取一个文本<strong>文件</strong>:</p> <p>```python<br /> file_path = 'my_local_data.txt'</p> <p>try:<br /> # 使用with关键字,不用手动关闭文件,更安全<br /> with open(file_path, 'r', encoding='utf-8') as f:<br /> content = f.read() # 一次性读取文件所有内容<br /> # 或者 f.readline() 读一行<br /> # 或者 f.readlines() 读所有行到列表<br /> print(f"文件内容是:\n{content}")<br /> except FileNotFoundError:<br /> print(f"错误:文件 {file_path} 找不到!")<br /> except Exception as e:<br /> print(f"读取文件时发生错误: {e}")</p> <p>```</p> <p>写入<strong>文件</strong>也类似:</p> <p>```python<br /> new_file_path = 'output.txt'<br /> data_to_write = "这是我要写入文件的一些内容。\n这是第二行。"</p> <p>try:<br /> # 'w' 模式会覆盖原有内容,'a' 模式是追加<br /> with open(new_file_path, 'w', encoding='utf-8') as f:<br /> f.write(data_to_write)<br /> print(f"数据成功写入到文件: {new_file_path}")<br /> except Exception as e:<br /> print(f"写入文件时发生错误: {e}")</p> <p>```</p> <p><strong>访问</strong>本地<strong>文件</strong>,<strong>Python</strong>提供了各种模式和方法,让你能按字符、按行、按块去读写,还能处理各种编码问题。路径的操作也很方便,<code>os</code>和<code>pathlib</code>库能帮你轻松地创建目录、判断<strong>文件</strong>是否存在、拼接路径等等,都是在<strong>访问</strong><strong>文件</strong>系统这个“大仓库”时不可或缺的工具。</p> <p>再往深了说,<strong>Python怎么访问</strong><strong>数据库</strong>? এটাও很常见的需求 (Sorry, that was Bengali for "this is also a very common requirement" - just trying to show how Python connects stuff, even languages! Okay, back to Chinese). 当你的<strong>数据</strong>量很大,或者<strong>数据</strong>之间有复杂关系时,<strong>数据库</strong>是更好的存储和管理方式。<strong>Python</strong>有海量的<strong>数据库</strong>连接库(称为DB-API),几乎支持市面上所有的主流<strong>数据库</strong>,比如MySQL、PostgreSQL、SQLite、MongoDB等等。</p> <p>概念上,<strong>Python</strong><strong>访问</strong><strong>数据库</strong>的流程差不多是这样:<br /> 1. 导入对应的<strong>数据库</strong>连接库(比如<code>mysql.connector</code>或<code>psycopg2</code>)。<br /> 2. 建立一个连接(connection),需要<strong>数据库</strong>的地址、用户名、密码等信息。<br /> 3. 通过连接创建一个游标(cursor)对象。游标就像你在<strong>数据库</strong>里的一只手,所有的操作(执行SQL语句)都要通过它。<br /> 4. 用游标执行SQL语句,比如<code>SELECT</code>查<strong>数据</strong>,<code>INSERT</code>插<strong>数据</strong>,<code>UPDATE</code>改<strong>数据</strong>,<code>DELETE</code>删<strong>数据</strong>。<br /> 5. 如果是查询操作,通过游标的方法(如<code>fetchone()</code>、<code>fetchall()</code>)获取<strong>数据</strong>。<br /> 6. 提交(commit)你的操作(如果是修改<strong>数据</strong>的话)。<br /> 7. 关闭游标和连接。</p> <p>这是一个典型的<strong>Python</strong><strong>访问</strong>SQLite<strong>数据库</strong>的例子(SQLite是<strong>Python</strong>标准库自带的,不用额外安装,非常方便演示):</p> <p>```python<br /> import sqlite3</p> <h1>连接到数据库文件,如果文件不存在会自动创建</h1> <p>conn = sqlite3.connect('my_database.db')<br /> cursor = conn.cursor()</p> <h1>创建一个表(如果不存在的话)</h1> <p>cursor.execute('''<br /> CREATE TABLE IF NOT EXISTS users (<br /> id INTEGER PRIMARY KEY AUTOINCREMENT,<br /> name TEXT NOT NULL,<br /> age INTEGER<br /> )<br /> ''')</p> <h1>插入一些数据</h1> <p>cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", ('Alice', 30))<br /> cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", ('Bob', 25))</p> <h1>提交事务</h1> <p>conn.commit()</p> <h1>查询数据</h1> <p>cursor.execute("SELECT id, name, age FROM users WHERE age > ?", (28,))<br /> rows = cursor.fetchall() # 获取所有符合条件的行</p> <p>print("\n年龄大于28岁的用户:")<br /> for row in rows:<br /> print(row) # 每一行是一个元组</p> <h1>关闭游标和连接</h1> <p>cursor.close()<br /> conn.close()<br /> ```</p> <p>虽然上面的例子很简单,但它展示了<strong>Python怎么</strong>通过标准的DB-API接口去<strong>访问</strong><strong>数据库</strong>,执行SQL,然后获取结果。不同的<strong>数据库</strong>可能连接参数和一些细节略有不同,但整体的“连接-游标-执行-获取-关闭”流程是相通的。这就像<strong>Python</strong>为你<strong>访问</strong>各种<strong>数据库</strong>提供了一个统一的“翻译官”。</p> <p>说到底,<strong>Python怎么访问</strong>外部世界,<strong>访问</strong>各种资源,核心思想就是通过特定的模块或库,利用底层的协议或接口去<strong>请求</strong>/<strong>读取</strong>,然后处理<strong>响应</strong>/<strong>数据</strong>。无论是网络的HTTP<strong>请求</strong>/<strong>响应</strong>,<strong>文件</strong>系统的读写操作,还是<strong>数据库</strong>的SQL交互,<strong>Python</strong>都为你封装好了方便易用的工具。</p> <p>掌握了这些“<strong>访问</strong>”的技巧,你的<strong>Python</strong>程序就不再是一个只能在自己小世界里运行的封闭程序了。它能上网抓取最新资讯,能读取分析本地的报告<strong>文件</strong>,能连接<strong>数据库</strong>管理用户<strong>数据</strong>... 就像给你的程序插上了翅膀,让它能真正去跟真实世界互动,获取它需要的养分,完成更有意义的任务。所以,别再觉得<strong>Python怎么访问</strong>是个遥远的问题了,它就在你敲下的每一行<code>requests.get()</code>、<code>open()</code>、<code>cursor.execute()</code>里,就在你的程序伸向外部世界的每一次尝试中。去试,去摸索,你会发现<strong>Python</strong>的“<strong>访问</strong>”能力远比你想象的要强大得多。</p> </div> <div class="single-copyright"> <div>版权声明:</div><div>作者:蜗牛先森</div><div>链接:https://www.livip.net/931</div><div>文章版权归作者所有,未经允许请勿转载。</div> </div> <div class="post-end-dividing"> THE END </div> <app-single-btns id="app-single-btns"></app-single-btns> <div class="post-page-card"> <div class="card-item "> <div class="card-item-img" style="background-image:url(http://www.livip.net/wp-content/themes/CoreNext/static/img/slt2.png?v=673)"> <a href="https://www.livip.net/930"> <div>Python怎么收费?一文详解Python编程学习、开发应用的成本和免费资源获取。</div> <div><<上一篇</div> </a> </div> </div><div class="card-item "> <div class="card-item-img" style="background-image:url(http://www.livip.net/wp-content/themes/CoreNext/static/img/slt2.png?v=36)"> <a href="https://www.livip.net/932"> <div>Python怎么取出数据?各种方法技巧及实战案例深度解析</div> <div>下一篇>></div> </a> </div> </div> </div> </div> <div class="related-articles"> <div class="related-title"> 相关推荐 </div> <div class="related-articles-list" ref=""><div class="related-articles-post-item"> <span class="li-item"></span> <a href="https://www.livip.net/4563" target="_blank">10.19【小学笔顺字帖】一年级(1).pdf——专为一年级学生打造的笔顺练习宝典</a> </div><div class="related-articles-post-item"> <span class="li-item"></span> <a href="https://www.livip.net/4562" target="_blank">一(上)语文:看拼音写词语全册汇总1 (1).docx</a> </div><div class="related-articles-post-item"> <span class="li-item"></span> <a href="https://www.livip.net/4561" target="_blank">一(上)语文看拼音写词语全册汇总2(1).docx——小学语文拼音学习的必备利器</a> </div><div class="related-articles-post-item"> <span class="li-item"></span> <a href="https://www.livip.net/4560" target="_blank">1.看图写话7大口诀+10大句式+38篇范文(1).docx</a> </div><div class="related-articles-post-item"> <span class="li-item"></span> <a href="https://www.livip.net/4559" target="_blank">免费下载丨一(上)语文-每课默写纸(1).pdf,助力小学语文成绩飞跃</a> </div><div class="related-articles-post-item"> <span class="li-item"></span> <a href="https://www.livip.net/4558" target="_blank">一年级同步精讲字卡(共6页).pdf</a> </div><div class="related-articles-post-item"> <span class="li-item"></span> <a href="https://www.livip.net/4557" target="_blank">一(上)语文-【识字表】字帖【第1套】(1).pdf</a> </div><div class="related-articles-post-item"> <span class="li-item"></span> <a href="https://www.livip.net/4556" target="_blank">一(上)语文-看图写话练习(2).docx</a> </div><div class="related-articles-post-item"> <span class="li-item"></span> <a href="https://www.livip.net/4554" target="_blank">年级语文学习必备:一上《一好默写本》生字注音练习电子版,助力孩子打好基础</a> </div><div class="related-articles-post-item"> <span class="li-item"></span> <a href="https://www.livip.net/4549" target="_blank">精选海量高清图形图像设计素材,一站式解决您的视觉创作难题</a> </div></div> </div> <app-comment id="app-comment"></app-comment> </div> <aside> <div class="aside-box widget_core_next_user_info_widget"><div class="widget-user-info"> <div class="user-header"> <div class="avatar"> <img src="https://secure.gravatar.com/avatar/?s=96&d=mm&r=g" alt="user-avatar"> </div> <div style="min-width: 0;"> <div class="user-name"> <a href="https://www.livip.net/user" target="_blank">蜗牛先森</a> </div> <div class="user-description" title="这个人很懒,签名都没有">这个人很懒,签名都没有</div> </div> </div> <div class="user-post-comment"> <div class="item"> <div class="size"><img src="https://www.livip.net/wp-content/themes/CoreNext/static/img/icon/author_comment.svg"><a href="https://www.livip.net/user#/comment" target="_blank">0</a></div> <div>评论</div> </div> <div class="item"> <div class="size"><img src="https://www.livip.net/wp-content/themes/CoreNext/static/img/icon/author_post.svg"><a href="https://www.livip.net/user" target="_blank">1446</a></div> <div>文章</div> </div> </div> <div class="dividing"></div> <div class="new-title">最近动态</div><div class="active-list"><div class="active-item"><a href="https://www.livip.net/1790" target="_blank">发布了:Python怎么写飞机?从零开始,用代码实现你的空中梦想!</a></div><div class="active-item"><a href="https://www.livip.net/1789" target="_blank">发布了:Python Selenium 安装指南:轻松配置你的自动化测试环境,掌握 Python Selenium 安装</a></div><div class="active-item"><a href="https://www.livip.net/1788" target="_blank">发布了:Python怎么发送HTTP请求?一看就会的实用指南!</a></div></div></div></div><div class="aside-box widget_core_next_post_list_widget"><h2 class="widget-title widget-title-classic">文章列表</h2> <div class="core-next-widget-post-list"><div class="widget-post-item post-item-list"> <a href="https://www.livip.net/4563" target="_blank">10.19【小学笔顺字帖】一年级(1).pdf——专为一年级学生打造的笔顺练习宝典</a> </div><div class="widget-post-item post-item-list"> <a href="https://www.livip.net/4562" target="_blank">一(上)语文:看拼音写词语全册汇总1 (1).docx</a> </div><div class="widget-post-item post-item-list"> <a href="https://www.livip.net/4561" target="_blank">一(上)语文看拼音写词语全册汇总2(1).docx——小学语文拼音学习的必备利器</a> </div><div class="widget-post-item post-item-list"> <a href="https://www.livip.net/4560" target="_blank">1.看图写话7大口诀+10大句式+38篇范文(1).docx</a> </div><div class="widget-post-item post-item-list"> <a href="https://www.livip.net/4559" target="_blank">免费下载丨一(上)语文-每课默写纸(1).pdf,助力小学语文成绩飞跃</a> </div></div></div><div class="aside-box widget_core_next_weather_widget"><h2 class="widget-title widget-title-classic">实时天气</h2> <!-- <div class="cp-weather"> <div id="he-plugin-standard"></div> </div> <script> WIDGET = { "CONFIG": { "layout": "2", "height": 270, "background": "2", "dataColor": "434343", "key": "4837d979e7114d26b28e328aa856d6f8" } } </script> <script src="https://widget.qweather.net/standard/static/js/he-standard-common.js?v=2.0"></script> <iframe scrolling="no" src="https://tianqiapi.com/api.php?style=tp&skin=durian" frameborder="0" width="100%" height="260" allowtransparency="true"></iframe> <iframe scrolling="no" src="https://tianqiapi.com/api.php?style=tr&skin=durian" frameborder="0" width="100%" height="220" allowtransparency="true"></iframe> <iframe scrolling="no" src="https://tianqiapi.com/api.php?style=ti&skin=durian" frameborder="0" width="100%" height="270" allowtransparency="true"></iframe> <iframe scrolling="no" src="https://tianqiapi.com/api.php?style=ya&skin=orange" frameborder="0" width="100%" height="150" allowtransparency="true"></iframe> --> <div id="ww_d0e9e28e1bb8e" v='1.3' loc='id' a='{"t":"horizontal","lang":"zh","sl_lpl":1,"ids":[],"font":"Arial","sl_ics":"one_a","sl_sot":"celsius","cl_bkg":"#FFFFFF00","cl_font":"#000000","cl_cloud":"#d4d4d4","cl_persp":"#2196F3","cl_sun":"#FFC107","cl_moon":"#FFC107","cl_thund":"#FF5722"}'> <a href="https://weatherwidget.org/" id="ww_d0e9e28e1bb8e_u" target="_blank">Weather widget for website</a> </div> <script async src="https://app2.weatherwidget.org/js/?id=ww_d0e9e28e1bb8e"></script> </div> <div class="core-next-calendar default"> <div class="calendar-header"> <div class="calendar-title"> 日历 </div> <div class="calendar-header-right"> <div class="calendar-month-week"> <div>5月</div> <div>星期二</div> </div> <div class="calendar-current-day"> <div>19</div> </div> <img class="img-calendar-header-1" src="https://www.livip.net/wp-content/themes/CoreNext/static/img/widget/calendar-header-1.svg"> <img class="img-calendar-header-2" src="https://www.livip.net/wp-content/themes/CoreNext/static/img/widget/calendar-header-2.svg"> <img class="img-calendar-header-3" src="https://www.livip.net/wp-content/themes/CoreNext/static/img/widget/calendar-header-3.svg"> </div> </div> <div class="calendar-main"> <div class="calendar-body-header"> <ul> <li>一</li> <li>二</li> <li>三</li> <li>四</li> <li>五</li> <li>六</li> <li>日</li> </ul> <ul> <li></li><li></li><li></li><li></li><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li><li>13</li><li>14</li><li>15</li><li>16</li><li>17</li><li>18</li><li class="calendar-current-day">19</li><li>20</li><li>21</li><li>22</li><li>23</li><li>24</li><li>25</li><li>26</li><li>27</li><li>28</li><li>29</li><li>30</li><li>31</li> </ul> </div> </div> </div> </aside> </main> <div class="core-footer"> <div class="footer-main container"> <div class="footer-left"> <div> </div> <div class="footer-menu-list"><div><a href="https://www.livip.net/clock-screensaver" target="_blank">在线简约时钟屏保</a></div><div><a href="https://www.livip.net/manrkdown" target="_blank">manrkdown编辑器</a></div><div><a href="https://www.livip.net/sudoku" target="_blank">在线数独游戏</a></div><div><a href="https://www.livip.net/text_to_speech" target="_blank">在线文字转语音工具</a></div><div><a href="https://www.livip.net/ruler" target="_blank">在线尺子测量</a></div><div><a href="https://www.livip.net/image-cropper" target="_blank">在线图片裁剪工具</a></div></div> <div> Copyright © 2026 AI工具雷达站 <a href="https://www.lovestu.com/corenext" target="_blank">CoreNext</a> Powered by WordPress </div> <div class="icp-warp" id="icp-warp"> </div> </div> <div class="footer-right"> </div> </div> </div> </div> </body> <script type="speculationrules"> {"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/CoreNext/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} </script> <style></style><script type="text/javascript" src="https://www.livip.net/wp-content/plugins/age-calculator/assets/js/calendar.min.js?ver=1.0.0" id="calendar-conversion-js"></script> <script type="text/javascript" id="age-calculator-script-js-extra"> /* <![CDATA[ */ var ageCalculatorData = {"ajaxurl":"https://www.livip.net/wp-admin/admin-ajax.php","nonce":"fd8108a456","token":"FrLFJyUVluU81X8aAqnsen0cQVST9Ccs"}; //# sourceURL=age-calculator-script-js-extra /* ]]> */ </script> <script type="text/javascript" src="https://www.livip.net/wp-content/plugins/age-calculator/assets/js/age-calculator.js?ver=1.0.0" id="age-calculator-script-js"></script> <script type="text/javascript" src="https://s2.pstatp.com/cdn/jquery/3.6.0/jquery.min.js?ver=1.0" id="gh-query-js"></script> <script type="text/javascript" src="https://www.livip.net/wp-content/themes/CoreNext/static/js/global.min.js?ver=114" id="core_next_global-js"></script> <script type="text/javascript" src="https://www.livip.net/wp-content/themes/CoreNext/static/js/single-page.min.js?ver=114" id="core_next_single_page-js"></script> <script type="text/javascript" src="https://www.livip.net/wp-content/themes/CoreNext/static/js/html2canvas.min.js?ver=114" id="html2canvas-js"></script> <script type="text/javascript" src="https://www.livip.net/wp-content/themes/CoreNext/static/js/jquery-smartphoto.min.js?ver=114" id="core_next_smart_photo-js"></script> <style> :root { --box-border-radius: 5px; --theme-color: #409eff; --a-hover-color: #409eff; } .el-pagination.is-background .el-pager li:not(.disabled).active { background-color: #409eff; } .el-pagination.is-background .el-pager li:not(.disabled):hover { color:#409eff; } ::selection { background-color: #3390ff; } .el-button--primary{ background-color: #409eff; border-color: #409eff; } .el-button--primary:focus, .el-button--primary:hover{ background-color: #409eff; border-color: #409eff; opacity: .8; } .el-button:focus, .el-button:hover{ opacity: .8; } </style> <style> .content-warp img:not(.not-shadow){box-shadow: 0 0 5px 0 rgba(0, 0, 0, .1);} </style> <script id="wp-emoji-settings" type="application/json"> {"baseUrl":"https://s.w.org/images/core/emoji/17.0.2/72x72/","ext":".png","svgUrl":"https://s.w.org/images/core/emoji/17.0.2/svg/","svgExt":".svg","source":{"concatemoji":"https://www.livip.net/wp-includes/js/wp-emoji-release.min.js?ver=6.9.4"}} </script> <script type="module"> /* <![CDATA[ */ /*! This file is auto-generated */ const a=JSON.parse(document.getElementById("wp-emoji-settings").textContent),o=(window._wpemojiSettings=a,"wpEmojiSettingsSupports"),s=["flag","emoji"];function i(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(o,JSON.stringify(t))}catch(e){}}function c(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0);const a=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);return t.every((e,t)=>e===a[t])}function p(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var n=e.getImageData(16,16,1,1);for(let e=0;e<n.data.length;e++)if(0!==n.data[e])return!1;return!0}function u(e,t,n,a){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\udde8\ud83c\uddf6","\ud83c\udde8\u200b\ud83c\uddf6")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!a(e,"\ud83e\u1fac8")}return!1}function f(e,t,n,a){let r;const o=(r="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):document.createElement("canvas")).getContext("2d",{willReadFrequently:!0}),s=(o.textBaseline="top",o.font="600 32px Arial",{});return e.forEach(e=>{s[e]=t(o,e,n,a)}),s}function r(e){var t=document.createElement("script");t.src=e,t.defer=!0,document.head.appendChild(t)}a.supports={everything:!0,everythingExceptFlag:!0},new Promise(t=>{let n=function(){try{var e=JSON.parse(sessionStorage.getItem(o));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(s),u.toString(),c.toString(),p.toString()].join(",")+"));",a=new Blob([e],{type:"text/javascript"});const r=new Worker(URL.createObjectURL(a),{name:"wpTestEmojiSupports"});return void(r.onmessage=e=>{i(n=e.data),r.terminate(),t(n)})}catch(e){}i(n=f(s,u,c,p))}t(n)}).then(e=>{for(const n in e)a.supports[n]=e[n],a.supports.everything=a.supports.everything&&a.supports[n],"flag"!==n&&(a.supports.everythingExceptFlag=a.supports.everythingExceptFlag&&a.supports[n]);var t;a.supports.everythingExceptFlag=a.supports.everythingExceptFlag&&!a.supports.flag,a.supports.everything||((t=a.source||{}).concatemoji?r(t.concatemoji):t.wpemoji&&t.twemoji&&(r(t.twemoji),r(t.wpemoji)))}); //# sourceURL=https://www.livip.net/wp-includes/js/wp-emoji-loader.min.js /* ]]> */ </script> </html>