Python爬虫是一种通过程序自动化地访问网页、收集信息的方法,可以大幅提高工作效率。在爬虫中,手机号是很重要的一类资料,因此本文将介绍如何用Python获取网页中的手机号。
import re
import requests
url = "http://example.com"
response = requests.get(url)
phone_pattern = r"1\d{10}"
phones = re.findall(phone_pattern, response.text)
for phone in phones:
print(phone)
代码中,我们用requests库向网页发出GET请求,然后使用正则表达式re模块查找网页中所有满足格式(以1开头的11位数字)的手机号,并输出结果。
实际上,有些网站为了保护用户隐私会对手机号做一些加密。这时我们可以通过分析网页的代码找到加密算法,再用Python进行解密。例如:
import execjs
encrypt_code = """
function encrypt_phone(phone) {
// 加密算法
return encrypted_phone;
}
"""
with open("encrypt.js") as f: # 加密算法在外部JS文件中
js_code = f.read()
ctx = execjs.compile(js_code)
phone = "13112345678"
encrypted_phone = ctx.call("encrypt_phone", phone)
print(encrypted_phone)
代码中,我们使用了execjs库将外部JS文件编译为Python可执行的代码,然后调用加密函数encrypt_phone对手机号进行加密。
需要注意的是,在爬虫过程中,一定要遵守网络法规和网站使用条款,尊重用户隐私。否则,可能会触犯法律,带来严重后果。