如何抓取JS动态输出(非ajax)的电话号码

转载 2015年07月07日 22:53:36
很多网站为了防止用户的隐私信息(电话、手机、邮箱等)被爬虫抓取,对这些信息作了特殊处理。例如,采用JS输出、采用Ajax动态加载、以图片的形式显示等等。
 
其中最为常见的就是采用JS输出,这种方法实现的成本最低,同样也最好被抓取。
 
例如这个页面:
http://www.tripadvisor.com/Hotel_Review-g34859-d1526306-Reviews-Holiday_Inn_Express_Hotel_Suites-Columbus_Georgia.html
 
 
 
 
电话号码是采用JS输出的,JS代码如下:
 
 
<script>   
<!--  
function escramble_751(){  
var a,b,c  
a='877'  
b='-5'  
a+='-85'  
b+='095'  
c='9'  
document.write(a+c+b)  
}  
escramble_751()  
//-->  
</script> 
 
PS: 更BT的是这个函数名“escramble_751()”还是不断变化的。  
 
 
不过利用强大的字符串匹配工具“正则表达式”,还是可以很方便地将其提取出来的:
 
# Python  code
phone_re = re.compile("a='([ \+\-\d]+?)'.*?b='([ \+\-\d]+?)'.*?a\+='([ \+\-\d]+?)'.*?b\+='([ \+\-\d]+?)'.*?c='([ \+\-\d]+?)'", re.DOTALL)  
match = phone_re.search(html)  
if match:  
    a, b, c, d, e = match.groups()  
    telephone = a + c + e + b + d  
else:  

    telephone = None 


原文作者:西安鲲之鹏(http://www.site-digger.com
原文链接:http://www.site-digger.com/html/articles/20110316/3.html 点击打开链接


相关文章推荐

在登录页面中js进行正则验证电话号码和邮箱地址,并使用ajax进行用户ID的数据库验证

本文说的是在登录页面中使用js进行正则验证并使用ajax进行用户ID的数据库验证,另外也加入键盘监听。 先看一下登录的jsp页面代码 <% String path = request.ge...

常用js脚本 AJAX 手机号验证 限制checkbox 勾选个数 利用AJAX 做电话号码验证

function checkSubmitMobil() {         $("#moileMsg").html("");      ...

电话号码分割js(修改)

var phoneNumSegment = function(target) { var validate = function(obj, phoneNum) { //...

简单的JTML+JS验证用户名、电话号码格式_JS自定义function_正则表达式

function checkRegTels(regtels){  var str=regtels;  var Expression=/^(\d{4}-)(\d{7})$/;  var objEx...

网页抓取查询电话号码

  • 2012-03-20 15:03
  • 42KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)