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中的条件判断语句基础学习教程
Feb 07 Python
Python操作MongoDB数据库的方法示例
Jan 04 Python
Python实现识别手写数字 Python图片读入与处理
Mar 23 Python
Pycharm 创建 Django admin 用户名和密码的实例
May 30 Python
Python实现朴素贝叶斯分类器的方法详解
Jul 04 Python
python DataFrame 取差集实例
Jan 30 Python
Django单元测试工具test client使用详解
Aug 02 Python
python图形绘制奥运五环实例讲解
Sep 14 Python
numpy ndarray 取出满足特定条件的某些行实例
Dec 05 Python
推荐8款常用的Python GUI图形界面开发框架
Feb 23 Python
python datetime时间格式的相互转换问题
Jun 11 Python
pycharm进入时每次都是insert模式的解决方式
Feb 05 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
世界第一个无线广播电台 KDKA
2021/03/01 无线电
编写PHP的安全策略
2006/10/09 PHP
PHP生成UTF8文件的方法
2010/05/15 PHP
线路分流自动智能跳转代码,自动选择最快镜像网站(js)
2011/10/31 Javascript
ASP.NET jQuery 实例8 (动态添加内容到DropDownList)
2012/02/03 Javascript
js动态在form上插入enctype=multipart/form-data的问题
2012/05/24 Javascript
各浏览器对document.getElementById等方法的实现差异解析
2013/12/05 Javascript
利用javaScript实现点击输入框弹出窗体选择信息
2013/12/11 Javascript
JS实现文字链接感应鼠标淡入淡出改变颜色的方法
2015/02/26 Javascript
微信WeixinJSBridge API使用实例
2015/05/25 Javascript
JS实现n秒后自动跳转的两种方法
2020/11/30 Javascript
JS实现数字格式千分位相互转换方法
2016/08/01 Javascript
jQuery文本框得到与失去焦点动态改变样式效果
2016/09/08 Javascript
jQuery监听文件上传实现进度条效果的方法
2016/10/16 Javascript
angular2倒计时组件使用详解
2017/01/12 Javascript
Node.js使用orm2进行update操作时关联字段无法修改的解决方法
2017/06/13 Javascript
js中apply和Math.max()函数的问题及区别介绍
2018/03/27 Javascript
js设置鼠标悬停改变背景色实现详解
2019/06/26 Javascript
Vue-router 报错NavigationDuplicated的解决方法
2020/03/31 Javascript
请求时token过期自动刷新token操作
2020/09/11 Javascript
[06:37]2014DOTA2国际邀请赛 昔日王者渴望重回巅峰
2014/07/12 DOTA
[16:04]DOTA2海涛带你玩炸弹 9月5日更新内容详解
2014/09/05 DOTA
[44:01]2018DOTA2亚洲邀请赛3月30日 小组赛B组 EG VS paiN
2018/03/31 DOTA
Python实现朴素贝叶斯分类器的方法详解
2018/07/04 Python
Python自定义一个异常类的方法
2019/06/27 Python
Numpy对数组的操作:创建、变形(升降维等)、计算、取值、复制、分割、合并
2019/08/28 Python
Python logging模块写入中文出现乱码
2020/05/21 Python
python基于openpyxl生成excel文件
2020/12/23 Python
详解CSS3中@media的实际使用
2015/08/04 HTML / CSS
美国最好的保健品打折网店:Swanson
2017/08/04 全球购物
2014年乡镇领导个人整改措施
2014/09/19 职场文书
2014年高二班主任工作总结
2014/12/16 职场文书
2016年春节问候语
2015/11/11 职场文书
vue+element ui实现锚点定位
2021/06/29 Vue.js
python 使用tkinter与messagebox写界面和弹窗
2022/03/20 Python
Python用tkinter实现自定义记事本的方法详解
2022/03/31 Python