如何抓取JS动态输出(非ajax)的电话号码
来源:互联网 发布:布点算法 编辑:程序博客网 时间:2024/06/06 00:02
很多网站为了防止用户的隐私信息(电话、手机、邮箱等)被爬虫抓取,对这些信息作了特殊处理。例如,采用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
0 0
- 如何抓取JS动态输出(非ajax)的电话号码
- cookie ajax动态网页数据的抓取
- 如何抓取AJAX Javascript模拟的超链接
- 如何抓取Js动态生成数据且以滚动页面方式分页的网页
- 如何抓取Js动态生成数据且以滚动页面方式分页的网页
- Scrapy抓取Ajax动态页面
- ajax动态抓取今日头条街拍美图
- net.sf.json.JSONArray 转换的Json 在非Ajax中如何转换成js对象
- js 拨打电话号码的方法
- JS中电话号码的正则
- 如何对ajax型的网页数据进行抓取
- 使用selenium抓取JS动态生成的页面
- 使用phantomjs抓取JS动态生成的页面
- 使用python抓取js动态加载的网页
- 使用python抓取js动态加载的网页
- 使用phantomjs抓取JS动态生成的页面
- 分布式下的爬虫Scrapy应该如何做-关于动态内容js或者ajax处理(2)
- 如何抓取执行js之后的网页内容
- jQuery全局ajax Error
- 【C++ 基础】——引用
- 2015070707 - 求助
- 每天一个linux命令(8):cp 命令
- Ardunio_PWM 原理及实现
- 如何抓取JS动态输出(非ajax)的电话号码
- Project Euler:Problem 57 Square root convergents
- Java中的继承与组合
- Python coding rules和标准库
- 全局网站标志
- Gas Station
- Foundation框架-05 NSNumber和NSValue
- C++ cin系列与get系列 函数 实现 用例 浅析
- Ubuntu 12.04 与Eclipse C++部署