php实现爬虫_thinkphp6.0 爬虫-程序员宅基地

技术标签: python  database  django  tornado  php  thinkphp  tp工具  

爬虫技术

简介

目前主流实现爬虫的方法都是使用pathon,但是不一定只有pathon,php也有很多爬虫工具,比如自带的curl,还有querylist,都能实现爬虫,只要能够实现爬数据,不要用什么样的方法都行。

querylist使用

QUERYLIST官方文档,先可以看下文档,熟悉一下,任务框架都可以使用

快速使用

过程很简单,看下文档基本上能够使用,

安装

使用compser安装composer require jaeger/querylist

爬取接口

use QL\QueryList;

public function data(){
	$arr = [   
	 'page' => 10,  
	 'limit' => 1  
	];    //请求参数
	
	$hearders = [  
	 'headers' => [  
	 'token' => 'eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiIxNDEwNDI2MTU0MDM5NDMxMTY5IiwiaWF0IjoxNjI2ODUwMjcwLCJzdWIiOiJkNDkzOTJmNWYyOWI4YjMxNzI0OGEwMmY3MzY3Yjk4NDlhZmRjZGY1IiwiZXhwIjoxNjI5NDQyMjcwfQ.ie5Kw9n3NSz3qPsBNxj30ztBvUUDD0zkOAt-ls8dS2E'  
	 ]  
	];   //设置请求头,根据不同网站设置
	
	$mes = QueryList::get('https://app.shapil.cn/app',$arr,$hearders);  
	$res = json_decode($mes->getHtml(),true); //如果是抓接口,记得encode,
	
	//接下来就看你自己的处理,可以保存到数据库什么的
	// to do something
}


爬取网页

<?php 
	use QL\QueryList; 
	
	//采集某页面所有的图片
	$data = QueryList::get('http://cms.querylist.cc/bizhi/453.html')->find('img')->attrs('src'); 
	
	//打印结果
	print_r($data->all());
	
	//采集某页面所有的超链接和超链接文本内容 
	//可以先手动获取要采集的页面源码
	$html = file_get_contents('http://cms.querylist.cc/google/list_1.html'); 
	//然后可以把页面源码或者HTML片段传给QueryList
	$data = QueryList::html($html)->rules([ //设置采集规则 
	// 采集所有a标签的href属性
	'link' => ['a','href'], 
	
	// 采集所有a标签的文本内容
	'text' => ['a','text'] ])->range('li')->query()->getData(); 
	//打印结果
	print_r($data->all());

自动化运行

会爬取数据了,也得知道怎么自动化运行,我刚开始是把它写个接口,后来发现这样不行,接口容易超时,只有通过控制台命令,让他一直执行下去
TP6命令行

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_29974553/article/details/119174370

智能推荐

【Unity3D赛车游戏优化篇】【九】Unity中如何让汽车丝滑漂移?_unity 汽车移动-程序员宅基地

文章浏览阅读4.8k次,点赞59次,收藏66次。Unity中如何让汽车丝滑漂移?手把手实现_unity 汽车移动

ChatGPT: 从GPT-3.5到GPT-4,探索语言模型的演进之路_chatgpt3.5模型参考量-程序员宅基地

文章浏览阅读1.7k次。GPT-3.5 是 GPT(Generative Pre-trained Transformer)模型的一个版本,是 OpenAI 公司在 GPT-3 模型基础上进行改进和优化而得到的。GPT-3.5 拥有巨大的模型规模和参数量,具有更强大的语言生成和对话生成能力。它采用了基于 Transformer 架构的深度神经网络,通过在大规模语料库上进行预训练和微调,可以生成高质量、流利、连贯的文本。GPT-4 是 GPT 模型的下一代版本,预计将在 GPT-3.5 的基础上进一步改进和演进。_chatgpt3.5模型参考量

通过Fiddler进行手机抓包_同一局域网抓包别人手机-程序员宅基地

文章浏览阅读765次。通过Fiddler抓包工具,可以抓取手机的网络通信,但前提是手机和电脑处于同一局域网内(WI-FI或热点),然后进行以下设置:用Fiddler对Android应用进行抓包1.打开Fiddler设置2.在Connections里设置允许连接远程计算机,确认后重新启动Fiddler3.在命令提示符下输入ipconfig查看本机IP4.打开Android设备的“设置”-&..._同一局域网抓包别人手机

中国移动C-RAN力拼第4个C:2018年6月外场组网验证-程序员宅基地

文章浏览阅读143次。2009,中国移动在业界首次推出了4C——“集中化、协作化、云化、绿色节能”的C-RAN无线接入网概念。七年过去了,C-RAN概念4C中的3个C——“集中化、协作化、绿色节能”已经逐步在网络中落地,第4个C——“云化”也在研究方面取得了巨大的进展。C-RAN已经在亚洲、北美的几大运营商里得到一定规模的推广应用,并且成为5G接入网的重要方向。近日,为了..._c-ran gps

Android studio 多渠道打包步骤-程序员宅基地

文章浏览阅读499次,点赞10次,收藏8次。在Android Studio的菜单栏中,选择Build -> Build Bundle(s) / APK(s) -> Build APK(s)。通过上述步骤,就可以在Android Studio中使用Gradle的多渠道打包功能生成不同渠道的应用包。每个渠道的应用包都包含了对应渠道的包名、签名和资源文件。在Android Studio中,可以使用Gradle的多渠道打包功能来生成不同渠道的应用包。构建完成后,在app模块的build/outputs/apk目录下会生成不同渠道的应用包。_android studio 多渠道打包

基于stm32芯片移植uc/os-III操作系统_怎么给芯片移植操作系统-程序员宅基地

文章浏览阅读1k次,点赞2次,收藏10次。移植uc/os-III系统需要的uc/os-III系统相关源码二级目录三级目录需要的uc/os-III系统相关源码链接:https://pan.baidu.com/s/1Sa_OIgD3w8mnSMJYQBOr2Q提取码:6qe8下载上面链接下载打开文件在同级目录下创建两个文件夹用来存放后续相关代码US-BSP,US-CONFIGzai 在US-BSP里面创建bsp.c,bsp.h文件接下来将8个相关文件复制到US-CONFIG文件夹里面复制之后的结果二级目录三级目录..._怎么给芯片移植操作系统

随便推点

学完python基础开始学爬虫_零基础三天学会Python爬虫 -- 龙头-程序员宅基地

文章浏览阅读127次。教我女朋友学习爬虫最近iOS方面没有开发任务, 老板给了我两周的时间学习爬虫. 期间踩了无数的坑. 终于算是可以在爬虫方面有所小成, 在学习阶段很感谢各种大神的技术文章对我的帮助. 可是如果你是小白的话, 这些技术文章的阅读难度会比较大. 可能会导致在学习阶段在环境配置, IDE选择, 初始爬虫上浪费很多时间.所以这系列文章会在细节上特别重视. 我的主旨就是我踩过的坑, 就不会让你们再踩了.学习..._start_spider

天锐绿盾 | 文件数据\资料防泄漏软件 \ 自动智能透明加密保护-程序员宅基地

文章浏览阅读305次,点赞3次,收藏3次。天锐绿盾终端数据安全防泄密管理系统是一款功能强大的企业加密软件,它采用透明加解密技术,可以在不影响员工正常操作习惯的前提下,自动对新建或修改的设计图纸、源代码、财务信息等重要数据进行加密。加密后的文件只能在授权的环境中使用,如果未经解密审批许可,加密文件被私自传输到单位外部,将显示随机代码或无法打开,从而有效防止设计稿件、源代码等敏感信息被非法访问和外泄。因此,通过部署天锐绿盾终端数据安全防泄密管理系统,公司可以实现对办公终端文件数据资料的多层次、全方位的保护,有效防范数据泄露风险,保障企业的信息安全。

C++开发技术的应用有哪些?_c++开发的经典应用-程序员宅基地

文章浏览阅读1.4k次。C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。C++不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。C++应用之跨平台的游戏设计C++技术应用1、科学计算:在科学计算领域,FORTRAN是使用最多的语言之一。但是C++凭借先进的数_c++开发的经典应用

将JavaScript数组转换为JSON_js 数组转json-程序员宅基地

文章浏览阅读1.1k次。在JavaScript中,我们经常需要将数据转换为JSON(JavaScript Object Notation)格式,以便在不同的应用程序之间进行数据交换。在本文中,我将向您展示如何将JavaScript数组转换为JSON字符串,并提供相应的源代码。方法,您可以将JavaScript数组转换为JSON字符串,以便在需要时进行数据传输和存储。这个方法将接受一个JavaScript对象或数组,并返回一个表示该对象或数组的JSON字符串。方法将这个数组转换为JSON字符串,并将结果存储在。_js 数组转json

Java小游戏之——贪吃蛇-程序员宅基地

文章浏览阅读58次。只有当我们开始游戏的时候,我们会按下空格,这个时候方向direction就被赋值为空格.用if语言判断direction是否为空格,如果是空格说明游戏开始,小蛇可以开始向右移动了,如果direction不是空格,即进行了转向,并按照转向后的方向跑,那么我们的自动向右跑的条件就不会符合,也就不会自动向右跑了.我们可以通过定时器和事件监听器的组合使用,实现对定时器内线程任务的不断检测,进而是实现小蛇的不间断移动以及各种判定. 我们要明确监听器和定时器它们各自的作用.如何实现小蛇的不间断移动?

Java方法的重载和重写_java重载重写方法怎么写-程序员宅基地

文章浏览阅读78次。Java方法的重载与重写重载:1.在同一个类中定义2.方法名相同,参数列表不同的多个方法3.程序编译时,看引用,根据引用的类型(参数列表的类型和个数)调用不同的方法重写:1.在子类中定义2.方法名,参数列表均和父类中方法相同3.程序运行时,看对象,根据引用变量指向的实际对象类型(而不是引用类型)调用不同的版本向上造型时:1.调重载方法,看引用的类型2.调重写方法,看引用指向的实际对象_java重载重写方法怎么写