PHP网页抓取之抓取百度贴吧邮箱数据代码分享


Posted in Python onApril 13, 2016

百度贴吧大家都经常逛,去逛百度贴吧的时候,经常会看到楼主分享一些资源,要求留下邮箱,楼主才给发。

对于一个热门的帖子,留下的邮箱数量是非常多的,楼主需要一个一个的去复制那些回复的邮箱,然后再粘贴发送邮件,不是被折磨死就是被累死。无聊至极写了一个抓取百度贴吧邮箱数据的程序,需要的拿走。

程序实现了一键抓取帖子全部邮箱和分页抓取邮箱两个功能,界面懒得做了,效果如下:

PHP网页抓取之抓取百度贴吧邮箱数据代码分享

老规矩,直接贴源码

<?php
$url2="";
$page="";
if($_GET['url2']==""){
$url2="http://tieba.baidu.com/p/2314539885?pn=1";
}else{
$url2=$_GET['url2'];
}

if($_GET['page']==""){
$page="1";
}else{
$page=$_GET['page'];
}
?>
<form action="" method="get">
<input type="hidden" value="getAll" name="type" />
<table>
<tr>
<td>帖子链接:</td><td><input type="text" name="url" value="http://tieba.baidu.com/p/2314539885" style="width:300px;" /></td>
</tr>
<tr>
<td>总页数:</td><td><input type="text" name="page" style="width:300px;" value="<?php echo $page;?>" /></td>
</tr>
<tr>
<td colspan=2><input type="submit" value="抓取全部邮箱数据" /></td>
</tr>
</table>
</form>

<form action="" method="get">
<input type="hidden" value="getNow" name="type" />
<table>
<tr>
<td>帖子链接:</td><td><input type="text" name="url2" value="<?php echo $url2;?>" style="width:300px;" /></td>
</tr>
<tr>
<td colspan=2><input type="submit" value="抓取当前页面邮箱数据" /></td>
</tr>
</table>
</form>
<?php
if($_GET['type']!=""){
$counts=0;
if($_GET['type']=="getAll"){
$pages=$_GET['page'];
$url = $_GET['url'];
for($i=0;$i<$pages;$i++){
$ch2 = curl_init();
curl_setopt($ch2, CURLOPT_URL, $url);
curl_setopt($ch2, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ch2, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch2, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, TRUE);
$texts = curl_exec($ch2);
curl_close($ch2);
$dat=getEmail($texts);
for($j=0;$j<count($dat);$j++){
echo $dat[$j]."<br />";
$counts++;
}
}
}else if($_GET['type']=="getNow"){
$url = $_GET['url2'];
$ch2 = curl_init();
curl_setopt($ch2, CURLOPT_URL, $url);
curl_setopt($ch2, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ch2, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch2, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, TRUE);
$texts = curl_exec($ch2);
curl_close($ch2);
$dat=getEmail($texts);
for($i=0;$i<count($dat);$i++){
echo $dat[$i]."<br />";
$counts++;
}
}
echo '<h2>共采集到数据:'.$counts.'条</h2>';
}
function getEmail($str){
$pattern = "/([a-z0-9\-_\.]+@[a-z0-9]+\.[a-z0-9\-_\.]+)/"; 
preg_match_all($pattern,$str,$emailArr); 
return $emailArr[0]; 
}
?>
Python 相关文章推荐
Python记录详细调用堆栈日志的方法
May 05 Python
Python实现Event回调机制的方法
Feb 13 Python
十个Python练手的实战项目,学会这些Python就基本没问题了(推荐)
Apr 26 Python
pyqt5 从本地选择图片 并显示在label上的实例
Jun 13 Python
详解Anconda环境下载python包的教程(图形界面+命令行+pycharm安装)
Nov 11 Python
Python的赋值、深拷贝与浅拷贝的区别详解
Feb 12 Python
python实现程序重启和系统重启方式
Apr 16 Python
python利用os模块编写文件复制功能——copy()函数用法
Jul 13 Python
详解Python 中的容器 collections
Aug 17 Python
python 通过pip freeze、dowload打离线包及自动安装的过程详解(适用于保密的离线环境
Dec 14 Python
Pytorch实现WGAN用于动漫头像生成
Mar 04 Python
python模板入门教程之flask Jinja
Apr 11 Python
python 实时遍历日志文件
Apr 12 #Python
python字符串连接方法分析
Apr 12 #Python
python去除文件中空格、Tab及回车的方法
Apr 12 #Python
Python脚本实现虾米网签到功能
Apr 12 #Python
Python脚本简单实现打开默认浏览器登录人人和打开QQ的方法
Apr 12 #Python
用Python写冒泡排序代码
Apr 12 #Python
详解Python的Django框架中manage命令的使用与扩展
Apr 11 #Python
You might like
php读取msn上的用户信息类
2008/12/05 PHP
php使用curl发送json格式数据实例
2013/12/17 PHP
php读取文件内容的三种可行方法示例介绍
2014/02/08 PHP
PHP连接sql server 2005环境配置及问题解决
2014/08/08 PHP
php去除数组中重复数据
2014/11/18 PHP
PHP简单读取PDF页数的实现方法
2016/07/21 PHP
PHP执行普通shell命令流程解析
2020/08/24 PHP
Javascript的各种节点操作实例演示代码
2012/06/27 Javascript
通过js为元素添加多项样式,浏览器全兼容写法
2014/08/30 Javascript
jQuery获取标签文本内容和html内容的方法
2015/03/27 Javascript
JavaScript+html5 canvas实现本地截图教程
2020/04/16 Javascript
浅析$.getJSON异步请求和同步请求
2016/06/06 Javascript
完美JQuery图片切换效果的简单实现
2016/07/21 Javascript
Angular-Touch库用法示例
2016/12/22 Javascript
JavaScript转换数据库DateTime字段类型方法
2017/06/27 Javascript
基于vue-ssr的静态网站生成器VuePress 初体验
2018/04/17 Javascript
详解如何在vue项目中使用lodop打印插件
2018/09/27 Javascript
Vue+Webpack完美整合富文本编辑器TinyMce的方法
2018/11/30 Javascript
element-ui table行点击获取行索引(index)并利用索引更换行顺序
2020/02/27 Javascript
[14:00]DOTA2国际邀请赛史上最长大战 赛后专访B神
2013/08/10 DOTA
[43:32]Winstrike vs VGJ.S 2018国际邀请赛淘汰赛BO3 第一场 8.23
2018/08/24 DOTA
[06:45]DOTA2-DPC中国联赛 正赛 Magma vs LBZS 选手采访
2021/03/11 DOTA
python实现监控windows服务并自动启动服务示例
2014/04/17 Python
利用Pycharm断点调试Python程序的方法
2018/11/29 Python
PyQt5 QListWidget选择多项并返回的实例
2019/06/17 Python
Python selenium文件上传下载功能代码实例
2020/04/13 Python
欧迪办公美国官网:Office Depot
2016/08/22 全球购物
LACOSTE波兰官网:Polo衫、服装和鞋类
2020/09/29 全球购物
老公给老婆的道歉信
2014/01/10 职场文书
骨干教师培训制度
2014/01/13 职场文书
《小山羊和小灰兔》教学反思
2014/02/19 职场文书
征婚广告词
2014/03/17 职场文书
实习生评语
2014/04/26 职场文书
幼儿园六一儿童节演讲稿
2015/03/19 职场文书
高中班主任工作总结(范文)
2019/08/20 职场文书
Java spring单点登录系统
2021/09/04 Java/Android