phpQuery ------实战应用thinkphp框架
发布:smiling 来源: PHP粉丝网 添加日期:2014-11-20 16:47:44 浏览: 评论:0
相信许多朋友看小说都有一种感觉就是总有一些广告页面弹出来,加上最近在研究phpQuery进行数据采集,所以萌生了一个写一个小说网站玩的想法,经过大概4天的时间终于完成了,主要运用thinkphp框架MongoDb和phpQuery.
如下是一个分页采集的例子:
- public function pageHtml($searchkey, $page = 1) {
- Vendor('phpQuery.phpQuery.phpQuery');
- $pageHtml = Baidu::searchPage($searchkey, $page);
- $pageHtml = \phpQuery::newDocumentHTML($pageHtml);
- $count = $pageHtml->find('#pagelink .last')->html();
- $trs = $pageHtml->find('#content tr');
- foreach ($trs as $tr) {
- $book['href'] = pq($tr)->find('td:eq(0) a')->attr('href');
- $book['title'] = Baidu::utf8(pq($tr)->find('td:eq(0) a')->html());
- $book['bookId'] = intval(end(explode('/', $book['href'])));
- $href = explode('/', pq($tr)->find('td:eq(1) a')->attr('href'));
- $book['newZj'] = Baidu::DING_DIAN . $href[3] . '/' . $href[4] . '/' . $href[5] . '.html';
- $book['newName'] = Baidu::utf8(pq($tr)->find('td:eq(1) a')->html());
- $book['author'] = Baidu::utf8(pq($tr)->find('td:eq(2)')->html());
- $book['ziNum'] = Baidu::utf8(pq($tr)->find('td:eq(3)')->html());
- $book['lastDate'] = Baidu::utf8(pq($tr)->find('td:eq(4)')->html());
- $book['status'] = Baidu::utf8(pq($tr)->find('td:eq(5)')->html());
- $n = D('book')->where(array('bookId' => $book['bookId']))->find();
- $book['update'] = time();
- if ($n) {
- $book['_id'] = $n['_id'];
- $book['create'] = $n['create'];
- D('book')->create($book);
- D('book')->save();
- } else {
- if ($book['href']) {
- $book['create'] = time();
- D('book')->add($book);
- }
- }
- }
- \phpQuery::$documents = array();
- return $count;
- }
由于用的是mongoDb所以字符串要用utf-8的编码多有在Think\BaiduModel中做了一个转码如下:
- public static function utf8(String $string) {
- if (is_string($string)) {
- $untion = mb_detect_encoding($string, array("ASCII", 'UTF-8', "GB2312", "GBK", 'BIG5')); //转码
- if ($untion != 'UTF-8') {
- $string = mb_convert_encoding($string, "UTF-8", $untion);
- } //开源软件:phpfensi.com
- return $string;
- }
- return 'this is not string';
- }
phpQuery下载地址:http://pan.baidu.com/s/1ntv8su1
phpquery会占用过多内存的解决方法http://www.neatstudio.com/archives/?article-1928.html
Tags: phpQuery框架 thinkphp框架
- 上一篇:关于TP函数getlastSql()的错误问题
- 下一篇:thinkPHP的树
相关文章
- ·ThinkPhp框架学习---框架搭建(2014-07-23)
- ·Thinkphp框架实现多文件上传实现代码(2014-09-21)
- ·不用封装 SQL, HTML 等领域语言了吧?(2014-10-24)
- ·利用thinkphp框架构建网站的执行流程详细介绍(2014-11-20)
- ·thinkphp框架 实现注册登录程序(2015-09-30)
- ·thinkphp框架 如何利用GD库在图片上编写文字(代码范例)(2020-03-30)
- ·ThinkPHP框架安全实现分析(2021-07-14)
- ·thinkPHP框架整合tcpdf插件操作示例(2021-10-22)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)