- 使用Python爬虫获取1688店铺所有商品信息的完整指南
不会玩技术的技术girl
PythonAPIpython爬虫开发语言
在当今的电商时代,获取电商平台的商品信息对于市场分析、竞争对手研究以及数据挖掘等任务至关重要。1688作为中国领先的B2B电商平台,拥有海量的商品和商家数据。通过Python爬虫技术结合1688的API接口,我们可以高效地获取店铺的所有商品信息。本文将详细介绍如何实现这一目标。一、1688API接口简介1688开放平台提供了丰富的API接口,允许开发者通过合法的方式获取商品信息、店铺信息等数据。其
- Python爬虫系列:爬取小说并写入txt文件_python爬虫爬取小说保存txt
2301_82244158
程序员python爬虫开发语言
哈喽,哈喽~都说手机自带的浏览器是看小说最好的一个APP,不须要下载任何软件,直接百度就ok了。但是小编还是想说,如果没有网,度娘还是度娘吗?能把小说下载成一个**.txt文件看**不是更香吗?这能难倒小编吗?坚决不能滴。于是乎,自己动手丰衣足食,Python就是万能的好吧。概要:程序语言:python第三方库:requests,parsel最后Python崛起并且风靡,因为优点多、应用领域广、被
- Python爬虫获取custom-1688自定义API操作接口
不会玩技术的技术girl
PythonAPI1688APIpython爬虫开发语言
一、引言在电子商务领域,1688作为国内领先的B2B平台,提供了丰富的API接口,允许开发者获取商品信息、店铺信息等。其中,custom接口允许开发者进行自定义操作,获取特定的数据。本文将详细介绍如何使用Python调用1688的custom接口,并对获取到的数据进行分析和应用。二、准备工作注册1688开放平台账号访问1688开放平台官网,注册一个账号并完成相关认证。这是获取API接口权限的前提。
- 【Python百日进阶-Web开发-FastAPI】Day806 - FastAPI的查询参数和字符串校验
岳涛@泰山医院
Dash前端pythonfastapi
文章目录一、额外的校验1.1导入Query二、使用Query作为默认值三、添加更多校验四、添加正则表达式五、默认值六、声明为必需参数七、查询参数列表/多个值7.1具有默认值的查询参数列表/多个值7.2使用list八、声明更多元数据九、别名参数假设十、弃用参数十一、总结https://fastapi.tiangolo.com/zh/tutorial/query-params-str-validati
- 【Python百日进阶-数据分析】Day160 - plotly的IO操作
岳涛@泰山医院
Dashpython数据分析plotly
文章目录一、plotly.io.to_image1.1语法1.2参数1.3返回值二、plotly.io.write_image2.1语法2.2参数2.3返回值三、plotly.io.to_json3.1语法3.2参数3.3返回值四、plotly.io.from_json4.1语法4.2参数4.3返回值五、plotly.io.read_json5.1语法5.2参数5.3返回值六、plotly.io.
- Spring Boot 整合 Apollo 配置中心实战
疯狂的键盘侠
springbootjavaapollospringbootjava
SpringBoot整合Apollo配置中心实战一、Apollo简介二、环境准备三、项目整合步骤四、配置使用示例五、常见问题及解决在分布式系统开发中,配置管理至关重要。Apollo作为携程开源的一款可靠的配置中心,能高效地集中管理应用配置,实现实时更新推送,助力开发者轻松应对复杂多变的配置场景。本文将带你一步步完成SpringBoot项目与Apollo配置中心的整合,让你的应用配置管理如鱼得水。一
- python热力图代码_python绘制热力图heatmap
weixin_39898733
python热力图代码
本文实例为大家分享了python绘制热力图的具体代码,供大家参考,具体内容如下python的热力图是用皮尔逊相关系数来查看两者之间的关联性。#encoding:utf-8importnumpyasnpimportpandasaspdfrommatplotlibimportpyplotaspltfrommatplotlibimportcmfrommatplotlibimportaxesimportp
- 判断ip地址的合法性python_Python判断IP地址合法性的方法
胖厨胡学斌
Python判断IP地址合法性的方法发布于2014-10-1015:16:49|753次阅读|评论:0|来源:网友投递Python编程语言Python是一种面向对象、解释型计算机程序设计语言,由GuidovanRossum于1989年底发明,第一个公开发行版发行于1991年。Python语法简洁而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,它能够把用其他语言制作的各种模块(尤其是C/C++)
- 判断ip是否合法+linux,Shell脚本判断IP地址是否合法的方法
我是波波老师呐
判断ip是否合法+linux
使用shell校验ip地址合法性使用方法:[root@yangpython]#bashcheck_ip.ship地址执行结果:返回值0校验合法,非0不合法。shell代码:[root@yangpython]#vicheck_ip.sh#!/usr/bin/shcheckipaddr(){echo$1|grep"^[0-9]\{1,3\}\.\([0-9]\{1,3\}\.\)\{2\}[0-9]\
- python字符串常用方法整理
shdxhsq
python学习python字符串
参考教程:https://www.w3school.com.cn/python/python_strings.asphttps://www.runoob.com/python3/python3-string.html注意:在jupyter中,可以在方法名后面打一个问号,然后页面下方会显示这个方法的用法和参数介绍。目录一、摘要二、常用的18个方法1.captialize()2.center()3.c
- Python字符串常用方法
|枫叶
python
本人学习python时的总结,并不需要记住,知道有这个方法,拿起来用就行。a="helloworld"#字符串不能通过索引进行修改name[0]='q'#切片,查找字符串当中的一段值,[起始值:终止值:步长]不写步长默认是1print(a[0:5:])print(a[::-1])#步长负数倒过来走,不写起始值和终止值就走完全部print(a[::1])print(len(a))#len方法获取字符
- python一些常用库镜像资源
惬意的下雨天
python爬虫可视化python程序人生经验分享恰饭其他
python标准库:http://docs.python.org/3/library/index.htmlpythonHOWTO:http://docs.python.org/3/howto/index.html有以下的常用的国内源提供你选择:中国科技大学:https://pypi.mirrors.ustc.edu.cn/simple/清华大学:https://pypi.tuna.tsinghua
- Python可视化Seaborn库绘图(参数说明+代码实战)
步入烟尘
python开发语言Seaborn可视化
本文已收录于《Python超入门指南全册》本专栏专门针对零基础和需要进阶提升的同学所准备的一套完整教学,从基础到精通不断进阶深入,后续还有实战项目,轻松应对面试,专栏订阅地址:https://blog.csdn.net/mrdeam/category_12647587.html优点:订阅限时19.9付费专栏,私信博主还可进入全栈VIP答疑群,作者优先解答机会(代码指导、远程服务),群里大佬众多可以
- Python关于lambda表达式的思考
Alidme
python开发语言学习
寒假学习打卡第十五天今天依然没有学mit6.100L的新课,过年比较忙,就刚好复习复习今天做了一下lambda表达式或者说lambda函数的练习,让我想到了两点:1、lambda函数与正常函数对比在我们编写小段的通用型代码,我们可以无需单独定义一段函数来编写,可以直接使用lambda表达式套用在需要的地方,或者绑定一个变量重复使用。#(1)写一个接受两个参数返回两个参数的乘积的lambda表达式f
- 记录python中常用的镜像源
Littlehero_121
python系列篇python开发语言
参考博客:python常用镜像_python镜像-CSDN博客以下内容摘抄以上博客1.阿里云镜像https://mirrors.aliyun.com/pypi/simple/2、清华大学镜像https://pypi.tuna.tsinghua.edu.cn/simple3、豆瓣镜像https://pypi.doubanio.com/simple/4、中科大镜像https://pypi.mirror
- 使用seaborn绘制相关性热力图
CodeWG
python
使用seaborn绘制相关性热力图在数据分析和机器学习中,热力图是一种常见的可视化方法,用于显示不同变量之间的相关性。在Python中,我们可以使用seaborn库绘制相关性热力图。本文将介绍如何使用seaborn中的heatmap函数来绘制相关性热力图,并为读者提供示例代码。首先,我们需要导入必要的库:pandas、numpy和seaborn。我们还使用了matplotlib库以便于展示结果。i
- 【Python百日精通】Python 字符串的常用操作方法
屿小夏
精通Python百日计划pythonjava算法
文章目录引言一、查找1.1find()方法1.2index()方法1.3rfind()和rindex()方法1.4count()方法二、修改2.1replace()方法2.2split()方法2.3join()方法三、判断3.1startswith()方法3.2endswith()方法3.3isalpha()方法3.4isdigit()方法3.5isalnum()方法3.6isspace()方法四
- 3步搞定:java分布式WebSocket与消息队列的奇妙邂逅?
墨瑾轩
一起学学Java【一】分布式websocket网络协议java
关注墨瑾轩,带你探索编程的奥秘!超萌技术攻略,轻松晋级编程高手技术宝库已备好,就等你来挖掘订阅墨瑾轩,智趣学习不孤单即刻启航,编程之旅更有趣嘿,亲爱的开发者们!今天我们要聊的是那个让分布式系统心跳加速的热门话题——如何用消息队列轻松实现分布式WebSocket。别急,我会一步步带你走进这个奇妙的世界,让你轻松掌握这门技艺。准备好了吗?让我们开始这场技术盛宴吧!引言在这个信息爆炸的时代,WebSoc
- mayavi实例
鄧寜
matlabpython开发语言
Mayavi是一个用于三维可视化的Python库。它可以用于绘制三维图形、曲面、等值线和点云数据。它使用VTK后端进行绘图,并提供了一个类似于MATLAB的界面,使用户能够轻松地创建复杂的三维图形。示例:frommayaviimportmlab#生成等值线数据x,y,z=mlab.test_plot3d()#使用mlab.contour3d绘制等值线mlab.contour3d(x,y,z)#显示
- python获取键盘按键_python获取键盘
weixin_39992417
python获取键盘按键
广告关闭腾讯云11.11云上盛惠,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元!printreceivedinputis:,strinput函数input()函数和raw_input()函数基本可以互换,但是input会假设你的输入是一个有效的python表达式,并返回运算结果。#!usrbinpythonstr=input(enteryourinput:);pr
- 一个 SAP
Python中的class体内定义方法时,如果没有显式地包含self参数,有时候依然可以被调用。这是一个非常有趣的话题,因为它涉及到对Python中类与对象之间关系的更深理解。要理解为什么这种情况下方法依然能够被调用,我们需要逐步拆解Python类的构造方式以及方法绑定的原理。
- python 监控键盘输入_python 监控键盘输入
weixin_39717121
python监控键盘输入
软件测试精品文章汇总测试基础python测试开发库及项目谷歌如何测试软件python工具书籍下载-持续更新2018软件测试标准汇总下载python测试开发自学每周一练python测试工具开发自学每周一练-2018-06软件测试工具书籍与面试题汇总下载(持续更新)python测试开发自动化测试数据分析...文章python人工智能命理2019-05-131907浏览量Shell历史记录异地留痕审计与
- pythonmayavi三维建模可视化_Mayavi-更方便的可视化
ftggggc
#Mayavi-更方便的可视化虽然VTK3D可视化软件包功能强大,Python的TVTK包装方便简洁,但是要用这些工具快速编写实用的三维可视化程序仍然需要花费不少的精力。因此基于VTK开发了许多可视化软件,例如:ParaView、VTKDesigner2、Mayavi2等等。Mayavi2完全用Python编写,因此它不但是一个方便实用的可视化软件,而且可以方便地用Python编写扩展,嵌入到用户
- python列表与字典
Gadus_
笔记pythonpython
不可变性:在核心类型中,数字、字符串和元组是不可变的;列表和字典是可变的。在其他方面,这种不可变性可以用来保证在程序中保持一个对象固定不变。字符串replace方法会对全局进行搜索和替换,但是不会改变原始的字符串,而是会创建一个新的字符串作为结果【字符串的不可变性】字典是一种映射(mapping),是一个其他对象的集合,但是通过键而不是通过相对位置来存粗的,它没有任何可靠的从左到右的顺序,只是简单
- 如何使用Python快速建立一个http.server文件共享服务器并实现远程访问
秋说
内网穿透pythonhttp服务器
文章目录前言1.本地文件服务器搭建1.1.Python的安装和设置1.2.cpolar的安装和注册2.本地文件服务器的发布2.1.Cpolar云端设置2.2.Cpolar本地设置3.公网访问测试4.结语前言本文主要介绍如何在Windows系统电脑上使用python这样的简单程序语言,在自己的电脑上搭建一个共享文件服务器,并通过cpolar创建的公网地址,打造一个可以随时随地远程访问的私人云盘。数据
- python实现http文件服务器访问下载
lljss2020
PythonHTMLpythonhttp服务器
//1.pyimporthttp.serverimportsocketserverimportosimportthreadingimportsys#获取当前脚本所在的目录DIRECTORY=os.path.dirname(os.path.abspath(__file__))#设置服务器的端口PORT=8000#自定义Handler,将根目录设置为脚本所在目录classMyHTTPRequestHa
- Python的keyboard的使用:监控键盘的按键输入
DY009J
python计算机外设开发语言
keyboard库的作用Python的keyboard模块是一个用于监听和处理键盘事件的模块。它可以让Python程序获取用户在键盘上的输入,并可以对输入进行相应的处理。keyboard模块的功能包括:监听按键:可以监听用户按下和释放的键盘按键,并触发相应的事件。捕获热键:可以捕获用户定义的热键,当用户按下热键时,可以触发相应的操作。模拟键盘按键:可以模拟用户在键盘上按下和释放某个按键。获取键盘状
- python网页填表教程_PythonSpot 中文系列教程 · 翻译完成
weixin_39633917
python网页填表教程
原文:PythonSpotPythonTutorials协议:CCBY-NC-SA4.0欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远。在线阅读ApacheCN学习资源目录PythonSpot中文系列教程初学者介绍Python字符串字符串(第2部分)Python变量Python列表href="https://github.com/apachecn/pythonspot-zh/b
- python 自动填表单 不用webdriver_用python-webdriver实现自动填表
weixin_39747293
python自动填表单不用webdriver
在日常工作中常常需要重复填写某些表单,如果人工完成,费时费力,而且网络延迟令人十分崩溃。如果能够用程序实现自动填表,效率可以提高一倍以上,并且能够移植到多台计算机,进一步提高工作效率。webdriver是python的selenium库中的一个自动化测试工具,它能完全模拟浏览器的操作,无需处理复杂的request、post,对爬虫初学者十分友好。一、环境配置python3.6+selenium库+
- Python运算符
SSSCAESAR
文章目录1.运算符1.1运算符的概念1.2运算符的分类2.算术运算符3.赋值运算符4.比较运算符5.逻辑运算符5.1not逻辑非5.2and逻辑与5.3or逻辑或5.4⾮布尔值的与或运算6.条件运算符(三元运算符)7.运算符的优先级1.运算符1.1运算符的概念运算符⽤于执⾏程序代码运算,会针对⼀个以上操作数项⽬来进⾏运算。例如:2+3,其操作数是2和3,⽽运算符则是“+”1.2运算符的分类算术运算
- java杨辉三角
3213213333332132
java基础
package com.algorithm;
/**
* @Description 杨辉三角
* @author FuJianyong
* 2015-1-22上午10:10:59
*/
public class YangHui {
public static void main(String[] args) {
//初始化二维数组长度
int[][] y
- 《大话重构》之大布局的辛酸历史
白糖_
重构
《大话重构》中提到“大布局你伤不起”,如果企图重构一个陈旧的大型系统是有非常大的风险,重构不是想象中那么简单。我目前所在公司正好对产品做了一次“大布局重构”,下面我就分享这个“大布局”项目经验给大家。
背景
公司专注于企业级管理产品软件,企业有大中小之分,在2000年初公司用JSP/Servlet开发了一套针对中
- 电驴链接在线视频播放源码
dubinwei
源码电驴播放器视频ed2k
本项目是个搜索电驴(ed2k)链接的应用,借助于磁力视频播放器(官网:
http://loveandroid.duapp.com/ 开放平台),可以实现在线播放视频,也可以用迅雷或者其他下载工具下载。
项目源码:
http://git.oschina.net/svo/Emule,动态更新。也可从附件中下载。
项目源码依赖于两个库项目,库项目一链接:
http://git.oschina.
- Javascript中函数的toString()方法
周凡杨
JavaScriptjstoStringfunctionobject
简述
The toString() method returns a string representing the source code of the function.
简译之,Javascript的toString()方法返回一个代表函数源代码的字符串。
句法
function.
- struts处理自定义异常
g21121
struts
很多时候我们会用到自定义异常来表示特定的错误情况,自定义异常比较简单,只要分清是运行时异常还是非运行时异常即可,运行时异常不需要捕获,继承自RuntimeException,是由容器自己抛出,例如空指针异常。
非运行时异常继承自Exception,在抛出后需要捕获,例如文件未找到异常。
此处我们用的是非运行时异常,首先定义一个异常LoginException:
/**
* 类描述:登录相
- Linux中find常见用法示例
510888780
linux
Linux中find常见用法示例
·find path -option [ -print ] [ -exec -ok command ] {} \;
find命令的参数;
- SpringMVC的各种参数绑定方式
Harry642
springMVC绑定表单
1. 基本数据类型(以int为例,其他类似):
Controller代码:
@RequestMapping("saysth.do")
public void test(int count) {
}
表单代码:
<form action="saysth.do" method="post&q
- Java 获取Oracle ROWID
aijuans
javaoracle
A ROWID is an identification tag unique for each row of an Oracle Database table. The ROWID can be thought of as a virtual column, containing the ID for each row.
The oracle.sql.ROWID class i
- java获取方法的参数名
antlove
javajdkparametermethodreflect
reflect.ClassInformationUtil.java
package reflect;
import javassist.ClassPool;
import javassist.CtClass;
import javassist.CtMethod;
import javassist.Modifier;
import javassist.bytecode.CodeAtt
- JAVA正则表达式匹配 查找 替换 提取操作
百合不是茶
java正则表达式替换提取查找
正则表达式的查找;主要是用到String类中的split();
String str;
str.split();方法中传入按照什么规则截取,返回一个String数组
常见的截取规则:
str.split("\\.")按照.来截取
str.
- Java中equals()与hashCode()方法详解
bijian1013
javasetequals()hashCode()
一.equals()方法详解
equals()方法在object类中定义如下:
public boolean equals(Object obj) {
return (this == obj);
}
很明显是对两个对象的地址值进行的比较(即比较引用是否相同)。但是我们知道,String 、Math、I
- 精通Oracle10编程SQL(4)使用SQL语句
bijian1013
oracle数据库plsql
--工资级别表
create table SALGRADE
(
GRADE NUMBER(10),
LOSAL NUMBER(10,2),
HISAL NUMBER(10,2)
)
insert into SALGRADE values(1,0,100);
insert into SALGRADE values(2,100,200);
inser
- 【Nginx二】Nginx作为静态文件HTTP服务器
bit1129
HTTP服务器
Nginx作为静态文件HTTP服务器
在本地系统中创建/data/www目录,存放html文件(包括index.html)
创建/data/images目录,存放imags图片
在主配置文件中添加http指令
http {
server {
listen 80;
server_name
- kafka获得最新partition offset
blackproof
kafkapartitionoffset最新
kafka获得partition下标,需要用到kafka的simpleconsumer
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.
- centos 7安装docker两种方式
ronin47
第一种是采用yum 方式
yum install -y docker
 
- java-60-在O(1)时间删除链表结点
bylijinnan
java
public class DeleteNode_O1_Time {
/**
* Q 60 在O(1)时间删除链表结点
* 给定链表的头指针和一个结点指针(!!),在O(1)时间删除该结点
*
* Assume the list is:
* head->...->nodeToDelete->mNode->nNode->..
- nginx利用proxy_cache来缓存文件
cfyme
cache
user zhangy users;
worker_processes 10;
error_log /var/vlogs/nginx_error.log crit;
pid /var/vlogs/nginx.pid;
#Specifies the value for ma
- [JWFD开源工作流]JWFD嵌入式语法分析器负号的使用问题
comsci
嵌入式
假如我们需要用JWFD的语法分析模块定义一个带负号的方程式,直接在方程式之前添加负号是不正确的,而必须这样做:
string str01 = "a=3.14;b=2.71;c=0;c-((a*a)+(b*b))"
定义一个0整数c,然后用这个整数c去
- 如何集成支付宝官方文档
dai_lm
android
官方文档下载地址
https://b.alipay.com/order/productDetail.htm?productId=2012120700377310&tabId=4#ps-tabinfo-hash
集成的必要条件
1. 需要有自己的Server接收支付宝的消息
2. 需要先制作app,然后提交支付宝审核,通过后才能集成
调试的时候估计会真的扣款,请注意
- 应该在什么时候使用Hadoop
datamachine
hadoop
原帖地址:http://blog.chinaunix.net/uid-301743-id-3925358.html
存档,某些观点与我不谋而合,过度技术化不可取,且hadoop并非万能。
--------------------------------------------万能的分割线--------------------------------
有人问我,“你在大数据和Hado
- 在GridView中对于有外键的字段使用关联模型进行搜索和排序
dcj3sjt126com
yii
在GridView中使用关联模型进行搜索和排序
首先我们有两个模型它们直接有关联:
class Author extends CActiveRecord {
...
}
class Post extends CActiveRecord {
...
function relations() {
return array(
'
- 使用NSString 的格式化大全
dcj3sjt126com
Objective-C
格式定义The format specifiers supported by the NSString formatting methods and CFString formatting functions follow the IEEE printf specification; the specifiers are summarized in Table 1. Note that you c
- 使用activeX插件对象object滚动有重影
蕃薯耀
activeX插件滚动有重影
使用activeX插件对象object滚动有重影 <object style="width:0;" id="abc" classid="CLSID:D3E3970F-2927-9680-BBB4-5D0889909DF6" codebase="activex/OAX339.CAB#
- SpringMVC4零配置
hanqunfeng
springmvc4
基于Servlet3.0规范和SpringMVC4注解式配置方式,实现零xml配置,弄了个小demo,供交流讨论。
项目说明如下:
1.db.sql是项目中用到的表,数据库使用的是oracle11g
2.该项目使用mvn进行管理,私服为自搭建nexus,项目只用到一个第三方 jar,就是oracle的驱动;
3.默认项目为零配置启动,如果需要更改启动方式,请
- 《开源框架那点事儿16》:缓存相关代码的演变
j2eetop
开源框架
问题引入
上次我参与某个大型项目的优化工作,由于系统要求有比较高的TPS,因此就免不了要使用缓冲。
该项目中用的缓冲比较多,有MemCache,有Redis,有的还需要提供二级缓冲,也就是说应用服务器这层也可以设置一些缓冲。
当然去看相关实现代代码的时候,大致是下面的样子。
[java]
view plain
copy
print
?
public vo
- AngularJS浅析
kvhur
JavaScript
概念
AngularJS is a structural framework for dynamic web apps.
了解更多详情请见原文链接:http://www.gbtags.com/gb/share/5726.htm
Directive
扩展html,给html添加声明语句,以便实现自己的需求。对于页面中html元素以ng为前缀的属性名称,ng是angular的命名空间
- 架构师之jdk的bug排查(一)---------------split的点号陷阱
nannan408
split
1.前言.
jdk1.6的lang包的split方法是有bug的,它不能有效识别A.b.c这种类型,导致截取长度始终是0.而对于其他字符,则无此问题.不知道官方有没有修复这个bug.
2.代码
String[] paths = "object.object2.prop11".split("'");
System.ou
- 如何对10亿数据量级的mongoDB作高效的全表扫描
quentinXXZ
mongodb
本文链接:
http://quentinXXZ.iteye.com/blog/2149440
一、正常情况下,不应该有这种需求
首先,大家应该有个概念,标题中的这个问题,在大多情况下是一个伪命题,不应该被提出来。要知道,对于一般较大数据量的数据库,全表查询,这种操作一般情况下是不应该出现的,在做正常查询的时候,如果是范围查询,你至少应该要加上limit。
说一下,
- C语言算法之水仙花数
qiufeihu
c算法
/**
* 水仙花数
*/
#include <stdio.h>
#define N 10
int main()
{
int x,y,z;
for(x=1;x<=N;x++)
for(y=0;y<=N;y++)
for(z=0;z<=N;z++)
if(x*100+y*10+z == x*x*x
- JSP指令
wyzuomumu
jsp
jsp指令的一般语法格式: <%@ 指令名 属性 =”值 ” %>
常用的三种指令: page,include,taglib
page指令语法形式: <%@ page 属性 1=”值 1” 属性 2=”值 2”%>
include指令语法形式: <%@include file=”relative url”%> (jsp可以通过 include