php抓取网页连接函数(PHP端的操作0.这里我已经配置好了(组图))
优采云 发布时间: 2021-11-08 09:06php抓取网页连接函数(PHP端的操作0.这里我已经配置好了(组图))
一、准备工具、账号、项目等1. 安装QQ小程序开发工具
这是下载地址
我的是win10,64位,我下载的是红箭版。我首先下载了绿色箭头版本。结果只是测试模式。没有找到编辑器,只好再下载一个。
2.申请开发者账号获得APPID
就按照网上的步骤一步一步来,没什么好说的,放个网站就行了
3.创建一个空白项目
进入APPID,微信开发工具也可以测试ID,但是QQ没找到
二、开始在QQ开发工具中操作1.开始尝试连接后台,先封装一个方法,然后连接到后台调用方法
放上图
你可以把这个工具放在任何地方,我只是习惯这样放
这是代码,如果有什么不清楚的,可以查看文档
var ip = "http://127.0.0.1/"; //这个是本机IP,localhost也行,不过我习惯这个了
/**
* 固有方法:封装_连接后台方法
* 备注:如果之后放到服务器上,就只要换上面的那个ip就可以了
* url:这个是连接的接口的路径,之后引用方法的时候会当做参数填入
* data:这个是传入的参数,以后肯定会用到的,
* resolve是连接成功返回的函数,reject是连接失败的函数
*/
const req = function(url,data){
return new Promise((resolve,reject) =>{
qq.request({
url: ip+url,
data:data,
dataType : 'json',
method:'POST',
header: {
'content-type': 'application/x-www-form-urlencoded'
},
success:resolve,
fail:reject
})
})
};
/**
* 导出方法
* 介绍:这个是用来暴露方法的,这样一会在app.js中就可以引用这个方法了
*/
module.exports = {
req: req,
}
2. 在app.js中配置(不知道调用配置行不行,就这样调用)
先放图
这些省略的地方都是新建的时候就有的,所以我省略了。我只在第 5 行向下写了 46。
这是引用该工具包的路径,
var HTTP = require('utils/service/request.js');//创建时间:2019.08.03
这是引用连接的方法,其中req是我放的第一个代码片段中的req
/**
* 注册全局函数
* 创建时间:2019.08.03
*/
func:{
req:HTTP.req,//连接后台方法
}
3.功能页面参考调用方法
放上图
我把页面上的HTML代码改了,全部注释掉,然后放一个按钮,然后把HTML代码
评论并不重要。如果不是重点,我会评论。我先放一个总代码。如果想看里面的内容,也可以看看。然后我把js方法的部分代码放上来。
//index.js
//获取应用实例
const app = getApp();
Page({
data: {
motto: 'Hello World',
userInfo: {},
hasUserInfo: false,
canIUse: qq.canIUse('button.open-type.getUserInfo')
},
//事件处理函数
bindViewTap: function () {
qq.navigateTo({
url: '../logs/logs'
})
},
onLoad: function () {
if (app.globalData.userInfo) {
this.setData({
userInfo: app.globalData.userInfo,
hasUserInfo: true
})
} else if (this.data.canIUse) {
// 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
// 所以此处加入 callback 以防止这种情况
app.userInfoReadyCallback = res => {
this.setData({
userInfo: res.userInfo,
hasUserInfo: true
})
}
} else {
// 在没有 open-type=getUserInfo 版本的兼容处理
qq.getUserInfo({
success: res => {
app.globalData.userInfo = res.userInfo
this.setData({
userInfo: res.userInfo,
hasUserInfo: true
})
}
})
}
},
getUserInfo: function (e) {
console.log(e)
app.globalData.userInfo = e.detail.userInfo
this.setData({
userInfo: e.detail.userInfo,
hasUserInfo: true
})
},
/**
* _方法:测试
* 创建时间:2019.08.03
*/
_ceshi(){
const that = this;
const data = {
}
app.func.req('project_text1/index.php',data).then(res => {
console.log('后台数据',res);
}).catch(err =>{
console.log('获取数据失败,失败原因',err);
});
}
})
这是js连接后端方法的代码,我详细解释一下有什么
/**
* _方法:测试
* 创建时间:2019.08.03
*/
_ceshi(){
const that = this; //这个就是讲this提取到that中,如果外层变了,也能找到需要的最外层
const data = { //就是连接后台,啥逻辑都没有,所以这个理论里面就没放数据
}
//单引号里面的是路径,我一会写到PHP的时候,就可以看到了
//data就是传的数据,虽然啥也没有
//因为第一个代码块那里已经用resolve和reject配好了,所以这里.then和.catch就是连接后台成功和失败了
app.func.req('project_text1/index.php',data).then(res => {//然后res和err就是返回数据,前面的单引就是单纯的字符串
console.log('后台数据',res);
}).catch(err =>{
console.log('获取数据失败,失败原因',err);
});
}
然后这里是HTML图片
和代码,只有这个有效,其他都注释了,只是这个_ceshi方法连接js测试是否可以连接后台
测试按钮
三、PHP端的操作0.这里我已经在本机配置了运行PHP的软件和写PHP的软件,这里就不展开了。没做完我就先百度一下,补完PHP。1.启动phpStudy,让PHP先跑起来
注意:这里说的是需要配置Apache、MySQL等,其实没必要这么麻烦。互联网上有很多软件问题可以解决所有问题。
比如phpStudy官方版20180211
还有这个WampServer3.0.6 正式版
而这个 Visual NMP 7.0.31 (x64)
我目前使用第一个
这是启动后的截图
2.打开 sublime_text3
我是用这个软件来的,其他的php写也是可以的,不过我是第一次写,其他的还没用过,不知道哪种好用
3.截图我的代码
你看到左边的文件名了吗?我在小终端里就是按照这个写的。
当然你也可以右击右边的黑框,复制文件路径,然后把www和上一个改成127.0.0.1
这里的注释没用,有用的代码我先放上来,因为我是第一次写PHP,所以很多地方不知道。上面的评论都是我试过的。
第二行是返回的类型,我的PHP学习博客稍后详述
第 4 行是我尝试创建一个集合,第 8 行的结果很好。相反,第 4 行变成了两组。
然后,除了 15 行,我尝试打印并返回一些东西。也可以使用第 10 行,避免出现乱码。但是我没有乱码,所以就用了11行的那个。我想这个回报也可以使用。我稍后会尝试。尝试
刚试了一下,就用第10行的,但是代码突然乱码了,就换成第10行的就行了。
4. 然后在google上试试,把路径127.0.0.1\project_text1\index.php
这是替换第10行后的截图
看路径,和我小程序上的路径一模一样,可以用
四、点击小程序0.0 终于到了。虽然尝试了很多次,但这是第一次写博客。至少假装很开心。
点击测试按钮查看控制台输出,这是图片,
看红框就成功了,获取PHP后端的值,这样就可以连接PHP后端了
不得不说PHP后台连接真的很方便,而且还挺小巧的。感觉几个文件都可以用。如果是小项目,就不需要ssm或者springboot框架(我是做Java的)。直接连接就可以使用了,很方便