欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

PHP 用QueryList抓取网页内容

程序员文章站 2022-03-18 19:22:40
...
之前抓取网页数据都是用Java Jsoup,前几天听说用PHP抓更方便,今天就研究了一下,主要是用QueryList来实现.

QueryList是一个基于phpQuery的通用列表采集类,是一个简单、 灵活、强大的采集工具,采集任何复杂的页面 基本上就一句话就能搞定了.

直接拿博客园举例子了,http://www.cnblogs.com/ 我们用QueryList来抓取红框里面的内容

PHP 用QueryList抓取网页内容

查看网页源代码找到红框的位置

PHP 用QueryList抓取网页内容PHP 用QueryList抓取网页内容

  1div id="post_list">  2  3div class="post_item">  4div class="digg">  5div class="diggit" onclick="DiggPost('jr1993',4716308,222703,1)">  6span class="diggnum" id="digg_count_4716308">0span>  7div>  8div class="clear">div>  9div id="digg_tip_4716308" class="digg_tip">div> 10div> 11div class="post_item_body"> 12h3>a class="titlelnk" href="http://www.cnblogs.com/jr1993/p/4716308.html" target="_blank">简单的jQuery 四级分类实用插件a>h3> 13p class="post_item_summary"> 14a href="http://www.cnblogs.com/jr1993/" target="_blank">img width="48" height="48" class="pfs" src="http://pic.cnblogs.com/face/694143/20141118194530.png" alt="">a>    前言最近因需要自己封装了一个很简单的四级分类的jQuery插件,主要用于后台数据的传输和获取。接下来就分享一下这个实用的插件吧。正文老规矩,先看一下效果,这个就很丑了,没有美化的,因为主要还是用于后台界面使用的,同时请忽略测试数据的内容:那么下面就介绍一下使用方式:首先html代码: ... 
 15p> 16div class="post_item_foot"> 17a href="http://www.cnblogs.com/jr1993/" class="lightblue">郭锦荣a> 18    发布于 2015-08-09 20:40 
 19span class="article_comment">a href="http://www.cnblogs.com/jr1993/p/4716308.html#commentform" title="" class="gray"> 20         评论(0)a>span>span class="article_view">a href="http://www.cnblogs.com/jr1993/p/4716308.html" class="gray">阅读(21)a>span>div> 21div> 22div class="clear">div> 23div> 24div class="post_item"> 25div class="digg"> 26div class="diggit" onclick="DiggPost('maybe2030',4715035,229915,1)"> 27span class="diggnum" id="digg_count_4715035">0span> 28div> 29div class="clear">div> 30div id="digg_tip_4715035" class="digg_tip">div> 31div> 32div class="post_item_body"> 33h3>a class="titlelnk" href="http://www.cnblogs.com/maybe2030/p/4715035.html" target="_blank">[Data Structure & Algorithm] 七大查找算法a>h3> 34p class="post_item_summary"> 35a href="http://www.cnblogs.com/maybe2030/" target="_blank">img width="48" height="48" class="pfs" src="http://pic.cnblogs.com/face/764050/20150531155648.png" alt="">a>    和排序算法一样,查找算法也是一种最为基本的算法。高效地查找可以使我们对数据进行更加高效地操作,熟练掌握各种查找算法也是一项基本的算法技能。 
 36p> 37div class="post_item_foot"> 38a href="http://www.cnblogs.com/maybe2030/" class="lightblue">Poll的笔记a> 39    发布于 2015-08-09 20:27 
 40span class="article_comment">a href="http://www.cnblogs.com/maybe2030/p/4715035.html#commentform" title="" class="gray"> 41         评论(0)a>span>span class="article_view">a href="http://www.cnblogs.com/maybe2030/p/4715035.html" class="gray">阅读(12)a>span>div> 42div> 43div class="clear">div> 44div> 45div class="post_item"> 46div class="digg"> 47div class="diggit" onclick="DiggPost('zhanggui',4716267,191738,1)"> 48span class="diggnum" id="digg_count_4716267">0span> 49div> 50div class="clear">div> 51div id="digg_tip_4716267" class="digg_tip">div> 52div> 53div class="post_item_body"> 54h3>a class="titlelnk" href="http://www.cnblogs.com/zhanggui/p/4716267.html" target="_blank">第二章、进程的描述与控制a>h3> 55p class="post_item_summary"> 56a href="http://www.cnblogs.com/zhanggui/" target="_blank">img width="48" height="48" class="pfs" src="http://pic.cnblogs.com/face/527522/20140908182900.png" alt="">a>    第二章、进程的描述与控制====##2.1 前趋图和程序执行### 2.1.1 前趋图####概念:所谓前趋图:指一个有向无循环图(DAG),它用于描述进程之间执行的先后顺序。###2.1.2 程序顺序执行####特征:* 顺序性* 封闭性:指程序在封闭的环境中运行,程序运行时独占全机资源,资源的状... 
 57p> 58div class="post_item_foot"> 59a href="http://www.cnblogs.com/zhanggui/" class="lightblue">Scottzga> 60    发布于 2015-08-09 20:24 
 61span class="article_comment">a href="http://www.cnblogs.com/zhanggui/p/4716267.html#commentform" title="" class="gray"> 62         评论(0)a>span>span class="article_view">a href="http://www.cnblogs.com/zhanggui/p/4716267.html" class="gray">阅读(17)a>span>div> 63div> 64div class="clear">div> 65div> 66div class="post_item"> 67div class="digg"> 68div class="diggit" onclick="DiggPost('lubiao',4716200,158099,1)"> 69span class="diggnum" id="digg_count_4716200">0span> 70div> 71div class="clear">div> 72div id="digg_tip_4716200" class="digg_tip">div> 73div> 74div class="post_item_body"> 75h3>a class="titlelnk" href="http://www.cnblogs.com/lubiao/p/4716200.html" target="_blank">树莓派入门笔记a>h3> 76p class="post_item_summary"> 77a href="http://www.cnblogs.com/lubiao/" target="_blank">img width="48" height="48" class="pfs" src="http://pic.cnblogs.com/face/550600/20150808222928.png" alt="">a>    一、关于开源硬件开源硬件的概念简单理解就是电子硬件的设计详细参数是公开的,比如电路图、材料清单和PCB布局等等。主要类型:Arduino、CubieBoard、RaspberryPi、PcDuino、BeagleBone、KiWIBoard和Mixteil开源中国社区-开源硬件专区http://ww... 
 78p> 79div class="post_item_foot"> 80a href="http://www.cnblogs.com/lubiao/" class="lightblue">clbiaoa> 81    发布于 2015-08-09 20:05 
 82span class="article_comment">a href="http://www.cnblogs.com/lubiao/p/4716200.html#commentform" title="" class="gray"> 83         评论(0)a>span>span class="article_view">a href="http://www.cnblogs.com/lubiao/p/4716200.html" class="gray">阅读(59)a>span>div> 84div> 85div class="clear">div> 86div> 87div class="post_item"> 88div class="digg"> 89div class="diggit" onclick="DiggPost('xiaoheimiaoer',4716191,124701,1)"> 90span class="diggnum" id="digg_count_4716191">0span> 91div> 92div class="clear">div> 93div id="digg_tip_4716191" class="digg_tip">div> 94div> 95div class="post_item_body"> 96h3>a class="titlelnk" href="http://www.cnblogs.com/xiaoheimiaoer/p/4716191.html" target="_blank">JS监听组合按键a>h3> 97p class="post_item_summary"> 98a href="http://www.cnblogs.com/xiaoheimiaoer/" target="_blank">img width="48" height="48" class="pfs" src="http://pic.cnblogs.com/face/435330/20140328110126.png" alt="">a>    有些时候,我们需要在网页上,增加一些快捷按键,方便用户使用一些常用的操作,比如:保存,撤销,复制、粘贴等等。 下面简单梳理一下思路: 我们所熟悉的按键有这么集中类型:单独的按键操作,如:delete、up、down等两位组合建,如:ctrl(cmd)+ 其他按键,alt+其他按键,shift... 
 99p>100div class="post_item_foot">101a href="http://www.cnblogs.com/xiaoheimiaoer/" class="lightblue">黑MAOa>102    发布于 2015-08-09 19:59 
103span class="article_comment">a href="http://www.cnblogs.com/xiaoheimiaoer/p/4716191.html#commentform" title="" class="gray">104         评论(0)a>span>span class="article_view">a href="http://www.cnblogs.com/xiaoheimiaoer/p/4716191.html" class="gray">阅读(36)a>span>div>105div>106div class="clear">div>107div>108div class="post_item">109div class="digg">110div class="diggit" onclick="DiggPost('QG-whz',4716139,205933,1)">111span class="diggnum" id="digg_count_4716139">0span>112div>113div class="clear">div>114div id="digg_tip_4716139" class="digg_tip">div>115div>116div class="post_item_body">117h3>a class="titlelnk" href="http://www.cnblogs.com/QG-whz/p/4716139.html" target="_blank">编译器角度看C++复制构造函数a>h3>118p class="post_item_summary">119a href="http://www.cnblogs.com/QG-whz/" target="_blank">img width="48" height="48" class="pfs" src="http://pic.cnblogs.com/face/610439/20150502210248.png" alt="">a>    #[C++对象模型]复制构造函数的建构操作关于复制构造函数的简单介绍,可以看我以前写过的一篇文章[C++复制控制之复制构造函数](http://www.cnblogs.com/QG-whz/p/4485574.html "C++ 复制控制之复制构造函数")该文章中介绍了复制构造函数的定义、调用时机、... 
120p>121div class="post_item_foot">122a href="http://www.cnblogs.com/QG-whz/" class="lightblue">melonstreeta>123    发布于 2015-08-09 19:44 
124span class="article_comment">a href="http://www.cnblogs.com/QG-whz/p/4716139.html#commentform" title="" class="gray">125         评论(0)a>span>span class="article_view">a href="http://www.cnblogs.com/QG-whz/p/4716139.html" class="gray">阅读(41)a>span>div>126div>127div class="clear">div>128div>129div class="post_item">130div class="digg">131div class="diggit" onclick="DiggPost('advances',4716089,238649,1)">132span class="diggnum" id="digg_count_4716089">1span>133div>134div class="clear">div>135div id="digg_tip_4716089" class="digg_tip">div>136div>137div class="post_item_body">138h3>a class="titlelnk" href="http://www.cnblogs.com/advances/p/4716089.html" target="_blank">【Cocos2d入门教程三】HelloWorld之一目了然a>h3>139p class="post_item_summary">140a href="http://www.cnblogs.com/advances/" target="_blank">img width="48" height="48" class="pfs" src="http://pic.cnblogs.com/face/794244/20150804212641.png" alt="">a>    什么程序都是从HelloWorld先开始。同样Cocos2d-x我们先从HelloWorld进行下手、下面是HelloWorld的运行完成图:建立好的Cocos游戏项目中会有两个比较常用接触的文件夹。分别为Classes与resource。Classes存取代码文件,resource存取资源文件,下... 
141p>142div class="post_item_foot">143a href="http://www.cnblogs.com/advances/" class="lightblue">蔡明勇a>144    发布于 2015-08-09 19:27 
145span class="article_comment">a href="http://www.cnblogs.com/advances/p/4716089.html#commentform" title="2015-08-09 20:37" class="gray">146         评论(5)a>span>span class="article_view">a href="http://www.cnblogs.com/advances/p/4716089.html" class="gray">阅读(65)a>span>div>147div>148div class="clear">div>149div>150div class="post_item">151div class="digg">152div class="diggit" onclick="DiggPost('kodoyang',4715572,180900,1)">153span class="diggnum" id="digg_count_4715572">0span>154div>155div class="clear">div>156div id="digg_tip_4715572" class="digg_tip">div>157div>158div class="post_item_body">159h3>a class="titlelnk" href="http://www.cnblogs.com/kodoyang/p/MonteCarloMethod_PI.html" target="_blank">蒙特卡罗方法计算圆周率a>h3>160p class="post_item_summary">161a href="http://www.cnblogs.com/kodoyang/" target="_blank">img width="48" height="48" class="pfs" src="http://pic.cnblogs.com/face/618527/20150809193301.png" alt="">a>    为了避免计算时间超过十秒钟,很随意的减小了样本值。  【方形中的所有像素计算】中一共计算10^8次,当在【方形中的随机像素计算】中也计算相同的次数时,就会陷入等待。  猜测原因是获取随机数的时候浪费了很多时间,也可能是循环的次数太多消耗时间。  【方形中的随机像素求平均值】中巴10^8分成了计算10... 
162p>163div class="post_item_foot">164a href="http://www.cnblogs.com/kodoyang/" class="lightblue">kodoyanga>165    发布于 2015-08-09 19:24 
166span class="article_comment">a href="http://www.cnblogs.com/kodoyang/p/MonteCarloMethod_PI.html#commentform" title="" class="gray">167         评论(0)a>span>span class="article_view">a href="http://www.cnblogs.com/kodoyang/p/MonteCarloMethod_PI.html" class="gray">阅读(48)a>span>div>168div>169div class="clear">div>170div>171div class="post_item">172div class="digg">173div class="diggit" onclick="DiggPost('xyczero',4716019,198864,1)">174span class="diggnum" id="digg_count_4716019">0span>175div>176div class="clear">div>177div id="digg_tip_4716019" class="digg_tip">div>178div>179div class="post_item_body">180h3>a class="titlelnk" href="http://www.cnblogs.com/xyczero/p/4716019.html" target="_blank">Android 之夜间模式(多主题)的实现a>h3>181p class="post_item_summary">182a href="http://www.cnblogs.com/xyczero/" target="_blank">img width="48" height="48" class="pfs" src="http://pic.cnblogs.com/face/674691/20140930230333.png" alt="">a>    ##引言夜间模式其实属于多主题切换的一种,不过是最麻烦的一种。因为在夜间模式下不仅要切换主色调,次要色调等等,还要覆盖一些特殊的颜色,因为在夜间模式下总不能什么都是黑的把,那不得丑死-。-,所以当你夜间模式完成后,你的App对于日后多主题的扩展就可以轻松胜任了。##实现思路多数App由于历史原因当对... 
183p>184div class="post_item_foot">185a href="http://www.cnblogs.com/xyczero/" class="lightblue">xyczeroa>186    发布于 2015-08-09 18:40 
187span class="article_comment">a href="http://www.cnblogs.com/xyczero/p/4716019.html#commentform" title="" class="gray">188         评论(0)a>span>span class="article_view">a href="http://www.cnblogs.com/xyczero/p/4716019.html" class="gray">阅读(78)a>span>div>189div>190div class="clear">div>191div>192div class="post_item">193div class="digg">194div class="diggit" onclick="DiggPost('xishuai',4715000,124657,1)">195span class="diggnum" id="digg_count_4715000">8span>196div>197div class="clear">div>198div id="digg_tip_4715000" class="digg_tip">div>199div>200div class="post_item_body">201h3>a class="titlelnk" href="http://www.cnblogs.com/xishuai/p/4715000.html" target="_blank">2015-写给明年现在的自己a>h3>202p class="post_item_summary">203a href="http://www.cnblogs.com/xishuai/" target="_blank">img width="48" height="48" class="pfs" src="http://pic.cnblogs.com/face/435188/20130715165802.png" alt="">a>    《[2014-写给明年现在的自己](http://www.cnblogs.com/xishuai/p/3900217.html)》时间如流水,转眼又是一年,回头看去年现在的自己,仿佛还在昨天。去年的那篇博文,如果认真去读的话,你会发现我是带有情绪的,对自己以及对所看到人和事不满的一种情绪发泄,写出来... 
204p>205div class="post_item_foot">206a href="http://www.cnblogs.com/xishuai/" class="lightblue">田园里的蟋蟀a>207    发布于 2015-08-09 18:08 
208span class="article_comment">a href="http://www.cnblogs.com/xishuai/p/4715000.html#commentform" title="2015-08-09 20:17" class="gray">209         评论(5)a>span>span class="article_view">a href="http://www.cnblogs.com/xishuai/p/4715000.html" class="gray">阅读(289)a>span>div>210div>211div class="clear">div>212div>213div class="post_item">214div class="digg">215div class="diggit" onclick="DiggPost('anding',4715440,76293,1)">216span class="diggnum" id="digg_count_4715440">7span>217div>218div class="clear">div>219div id="digg_tip_4715440" class="digg_tip">div>220div>221div class="post_item_body">222h3>a class="titlelnk" href="http://www.cnblogs.com/anding/p/4715440.html" target="_blank">Winform开发全套31个UI组件开源共享a>h3>223p class="post_item_summary">224a href="http://www.cnblogs.com/anding/" target="_blank">img width="48" height="48" class="pfs" src="http://pic.cnblogs.com/face/151257/20150809180411.png" alt="">a>    一.前言 这套UI库是上一个公司(好几年前了)完成的。当时主要为开发公司内部ERP系统,重新设计实现了所有用到的Winform组建,包括Form窗体组建6个(支持换肤),基础控件25个。其中有很多参考借鉴其他开源组件,也有几个是集成的别人的组件,然后做了些调整。 现在已经好几年不做Winform..... 
225p>226div class="post_item_foot">227a href="http://www.cnblogs.com/anding/" class="lightblue">/*梦里花落知多少*/a>228    发布于 2015-08-09 18:01 
229span class="article_comment">a href="http://www.cnblogs.com/anding/p/4715440.html#commentform" title="2015-08-09 20:33" class="gray">230         评论(4)a>span>span class="article_view">a href="http://www.cnblogs.com/anding/p/4715440.html" class="gray">阅读(346)a>span>div>231div>232div class="clear">div>233div>234div class="post_item">235div class="digg">236div class="diggit" onclick="DiggPost('liulun',4714858,32486,1)">237span class="diggnum" id="digg_count_4714858">1span>238div>239div class="clear">div>240div id="digg_tip_4714858" class="digg_tip">div>241div>242div class="post_item_body">243h3>a class="titlelnk" href="http://www.cnblogs.com/liulun/p/4714858.html" target="_blank">用Nim语言开发windows GUI图形界面程序a>h3>244p class="post_item_summary">245a href="http://www.cnblogs.com/liulun/" target="_blank">img width="48" height="48" class="pfs" src="http://pic.cnblogs.com/face/u28932.png?id=12164046" alt="">a>    前言本文得到了“樂師”的大力支持,我们一起调试程序到深夜,要是没有他的帮忙,我不知道要多久才能迈过这道坎,另外“归心”还有其他人也提供了帮助,他们都来自于QQ群:“Nim开发*”469329878;感兴趣的朋友,可以加这个群一起讨论配置GUI开发环境我在这篇博客中,写到了Nim开发环境的搭建那篇... 
246p>247div class="post_item_foot">248a href="http://www.cnblogs.com/liulun/" class="lightblue">liuluna>249    发布于 2015-08-09 17:47 
250span class="article_comment">a href="http://www.cnblogs.com/liulun/p/4714858.html#commentform" title="" class="gray">251         评论(0)a>span>span class="article_view">a href="http://www.cnblogs.com/liulun/p/4714858.html" class="gray">阅读(175)a>span>div>252div>253div class="clear">div>254div>255div class="post_item">256div class="digg">257div class="diggit" onclick="DiggPost('klguang',4715529,232502,1)">258span class="diggnum" id="digg_count_4715529">2span>259div>260div class="clear">div>261div id="digg_tip_4715529" class="digg_tip">div>262div>263div class="post_item_body">264h3>a class="titlelnk" href="http://www.cnblogs.com/klguang/p/4715529.html" target="_blank">JSP执行过程详解a>h3>265p class="post_item_summary">266    复习JSP的概念 JSP是Java Server Page的缩写,在传统的HTML页面中加入JSP标签和java的程序片段就构成了JSP。 JSP的基本语法:两种注释类型、三个脚本元素、三个元素指令、八个动作指令。 JSP的内置对象常用的有:Request、Response、Out、Session、... 
267p>268div class="post_item_foot">269a href="http://www.cnblogs.com/klguang/" class="lightblue">klguanga>270    发布于 2015-08-09 17:46 
271span class="article_comment">a href="http://www.cnblogs.com/klguang/p/4715529.html#commentform" title="" class="gray">272         评论(0)a>span>span class="article_view">a href="http://www.cnblogs.com/klguang/p/4715529.html" class="gray">阅读(71)a>span>div>273div>274div class="clear">div>275div>276