PHP代码-数据爬取(a标签和a标签所对应的内容)
public function export(){
set_time_limit(1000);
// header("Content-type: text/html; charset=utf-8");
$a = file_get_contents('http://chuangye.yjbys.com/zhengce/');
$reg = '/<\/span><a href="(.*)" (.*)>(.*)</isU';
$result = preg_match_all($reg,$a,$match_result);
$arr = array();
foreach($match_result[1] as $k=>$v){
$tnum = strlen($match_result[3][$k]);
if(substr($v,0,1) == 'h' && $tnum>21){
$arr[$k]['art_url'] = $v;
$arr[$k]['art_title'] = mb_convert_encoding($match_result[3][$k], "UTF-8",'gbk');
// $match_result[3][$k];
mb_convert_encoding($match_result[3][$k], "UTF-8",'gbk');
$b = file_get_contents($v);
preg_match('/<div class=\"content\">(.*)<\/div>/s',$b,$match);
$match[0] = iconv("gbk", "utf-8", $match[0]);
$num = strpos($match[0],'<script type="text/javascript">a("content_body");</script>');
$cont = substr($match[0],0,$num)."</div>";
$cony = str_replace('<div class="ad_top_left"><script type="text/javascript">a("content_1");</script></div>',"",$cont);
$cont = str_replace('<div class="ad_top_left2"><script type="text/javascript">a("content_2");</script></div>',"",$cony);
// $cont = str_replace('“','“',$cont);
// $cont = str_replace('”','”',$cont);
// $cont = str_replace('…','~',$cont);
// $cont = str_replace('—','-',$cont);
// $cont = str_replace('"','“',$cont);
// $cont = str_replace('•','•',$cont);
$arr[$k]['art_content'] = html_entity_decode($cont);
$arr[$k]['state'] = 0;
$arr[$k]['type'] = 4;
$arr[$k]['userid'] = 4;
}
}
$arr = array_values($arr);
// print_r($arr);die;
// $arr2=array_iconv("gbk","utf-8",$arr);
// print_r($arr);die;
$article = M('cxpt_user_article');
var_dump($article->addAll($arr));echo $article->getLastSql();die;
// foreach($arr as &$v){
// $b = file_get_contents($v['url']);
// preg_match('/<div class=\"content\">(.*)<\/div>/s',$b,$match);
// $num = strpos($match[0],'<script type="text/javascript">a("content_body");</script>');
// $v['content'] = substr($match[0],0,$num);
// }
// foreach($arr as $v){
// $info['art_title'] = $v['title'];
// $info['art_content'] = $v['content'];
// }
// print_r($arr);die; }
PHP代码-数据爬取(a标签和a标签所对应的内容)的更多相关文章
- 基于 PHP 的数据爬取(QueryList)
基于PHP的数据爬取 官方网站站点 简单. 灵活.强大的PHP采集工具,让采集更简单一点. 简介: QueryList使用jQuery选择器来做采集,让你告别复杂的正则表达式:QueryList具有j ...
- 爬虫1.5-ajax数据爬取
目录 爬虫-ajax数据爬取 1. ajax数据 2. selenium+chromedriver知识准备 3. selenium+chromedriver实战拉勾网爬虫代码 爬虫-ajax数据爬取 ...
- 小爬爬5:重点回顾&&移动端数据爬取1
1. ()什么是selenium - 基于浏览器自动化的一个模块 ()在爬虫中为什么使用selenium及其和爬虫之间的关联 - 可以便捷的获取动态加载的数据 - 实现模拟登陆 ()列举常见的sele ...
- python实现人人网用户数据爬取及简单分析
这是之前做的一个小项目.这几天刚好整理了一些相关资料,顺便就在这里做一个梳理啦~ 简单来说这个项目实现了,登录人人网并爬取用户数据.并对用户数据进行分析挖掘,终于效果例如以下:1.存储人人网用户数据( ...
- 芝麻HTTP:JavaScript加密逻辑分析与Python模拟执行实现数据爬取
本节来说明一下 JavaScript 加密逻辑分析并利用 Python 模拟执行 JavaScript 实现数据爬取的过程.在这里以中国空气质量在线监测分析平台为例来进行分析,主要分析其加密逻辑及破解 ...
- Python爬虫 股票数据爬取
前一篇提到了与股票数据相关的可能几种数据情况,本篇接着上篇,介绍一下多个网页的数据爬取.目标抓取平安银行(000001)从1989年~2017年的全部财务数据. 数据源分析 地址分析 http://m ...
- quotes 整站数据爬取存mongo
安装完成scrapy后爬取部分信息已经不能满足躁动的心了,那么试试http://quotes.toscrape.com/整站数据爬取 第一部分 项目创建 1.进入到存储项目的文件夹,执行指令 scra ...
- Ajax数据爬取
Ajax的基本原理 以菜鸟教程的代码为例: XMLHTTPRequest对象是JS对Ajax的底层实现: var xmlhttp; if (window.XMLHttpRequest) { // IE ...
- Python爬虫入门教程 15-100 石家庄政民互动数据爬取
石家庄政民互动数据爬取-写在前面 今天,咱抓取一个网站,这个网站呢,涉及的内容就是 网友留言和回复,特别简单,但是网站是gov的.网址为 http://www.sjz.gov.cn/col/14900 ...
随机推荐
- 问题:CGI返回给前端的汉字数据是乱码(已解决)
今天,我在写CGI程序,把后台数据返回到前台页面上,出现乱码, 不好看,所以,我在Content-type:application后面加了字符集的设置(字符集和前端一样), fprintf(stdou ...
- 基于STM32的USB枚举过程学习笔记(转)
之前使用ST官方的库以及网络的资料,完成了使用USB HID类进行STM32和PC机的通讯.由于其他原因并没有深入的分析,虽然实现了功能,但是关于USB设备的枚举,以及具体的通讯方式都没有清晰的概念, ...
- 鱼刺 winhttp
winhttp com 对象 网页_访问_对象 api wininet 网页访问 下划线命名法 驼峰命名法 小驼峰 JS内置的一些 大驼峰 api 多线程用 coinitializ ...
- symfony采坑
2018年7月31日21:43:17 安装 首先安装composer 注意 windows下注意 [curl] curl.cainfo =E:\phpStudy\PHPTutorial\php\p ...
- html中不常用但必须知道的标签
1.<b>加粗</b> 为天地立心,为生民立命,为往圣继绝学,为万世开太平 2.<s>删除线</s> 为天地立心,为生民立命,为往圣继绝学,为万世开太平 ...
- token登录流程
1.token生成规则: private static $nameKey = array( 'readerid' => 0, //客户号 'ubuntu' => 1, //登录令牌 'pt ...
- c++ 第一次实验
实验内容: 2-28:实现一个简单的菜单程序,运行时显示“Menu:A(dd) D(elete) S(ort) Q(uit),Selete one:”提示用户输入.A表示增加,D表示删除, S表示排序 ...
- Xcode 断点无用,也不打印输出
原来是在main.m里使用了ptrace进行反调试. ptrace是系统用来对运行中的进程进行调试和跟踪的工具,通过ptrace,可以对另一个进程实现调试跟踪.但是里面提供了一个非常有用的参数,就是P ...
- OpenDialog文件多选
procedure TForm1.OpenFileListClick(Sender: TObject); var openDialog: TOpenDialog; I: Integer; begin ...
- Golang 之协程详解
转自:https://www.cnblogs.com/liang1101/p/7285955.html 一.Golang 线程和协程的区别 备注:需要区分进程.线程(内核级线程).协程(用户级线程)三 ...