一站式网站建设专家

十五年定制化网站建设经验.我们只做有价值的网站

互联网经验

15+

服务客户

2600+

专业团队

30+

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

发布时间:2018-03-08 00:00 发布作者:admin 阅读:59

 

良多网站为了避免用户的隐私信息(德律风、手机、邮箱等)被爬虫抓取,对这些信息作了特别处置。例如,采取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 
 

相关资讯