Python爬取海安网所有号码

本文介绍了一个使用Python编写的简单爬虫程序,该程序能够递归地爬取指定网站的所有页面链接,并通过正则表达式从网页内容中提取手机号码等数据,最后将这些数据存储到MSSQLServer数据库中。
部署运行你感兴趣的模型镜像

注:1.本程序采用MS SQL server数据库,请运行前手动修改程序开始处的数据库连接信息。

2.需要pyodbc库的支持

import requests,re,sys
from bs4 import BeautifulSoup
import pyodbc

pages = set()

conn = pyodbc.connect(r'DRIVER={SQL Server};SERVER=WXS-PC;DATABASE=Test;UID=sa')
cursor = conn.cursor()

#递归爬取整个网站,并将链接存入集合
def getLinks(pageUrl):
    global pages
    r = requests.get(pageUrl , timeout =30)
    demo = r.text
    bsObj = BeautifulSoup(demo,'html.parser')
    #去除外链
    for link in bsObj.findAll('a',href=re.compile("(www.haianw.com)+")):
        if 'href' in link.attrs:
            if link.attrs['href'] not in pages:
                newPage = link.attrs['href']
                findPhone(newPage)
                pages.add(newPage)
                getLinks(newPage)

#将当前url中的手机号存入字典
def findPhone(url):
    numbers = {}
    r = requests.get(url,timeout=30)
    data = r.text
    #电话号码和手机号码正则表达式
    phone_list = re.findall(r"\d{3}-\d{8}|\d{4}-\d{7}|1[34578]\d{9}",data)
    phone_list = list(set(phone_list))
    for phone in phone_list:
        numbers[phone] = url
    writePhone(numbers)
    
def writePhone(numbers):
    global cursor
    global conn
    for k,v in numbers.items():
        temp = "insert into Numbers (link,number) values ('{}','{}')".format(v,k)
        cursor.execute(temp)
        conn.commit()

       
if __name__ == '__main__':
    
    #设置递归深度为一百万,防止爬虫崩溃
    sys.setrecursionlimit(1000000)
    print("开始爬取全站链接...")
    try:
       getLinks('http://www.haianw.com')
    except Exception:
        print('爬虫发生崩溃错误,已停止爬取...')


您可能感兴趣的与本文相关的镜像

Qwen-Image

Qwen-Image

图片生成
Qwen

Qwen-Image是阿里云通义千问团队于2025年8月发布的亿参数图像生成基础模型,其最大亮点是强大的复杂文本渲染和精确图像编辑能力,能够生成包含多行、段落级中英文文本的高保真图像

企查查是一个非常常用的企业信息查询平台,它不仅提供了丰富的企业信息,还提供了联系方式等关键信息。如果你想要爬取企查查上的手机号码,可以使用 Python 的 requests 和 BeautifulSoup 库来实现。 首先,你需要使用 requests 库向企查查发送请求,获取搜索结果的页面内容。然后,你可以使用 BeautifulSoup 库解析页面内容,找到包含手机号码的元素。 以下是一个简单的示例代码,演示如何爬取企查查上某个公司的手机号码: ```python import requests from bs4 import BeautifulSoup # 设置请求头,模拟浏览器访问 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'} # 搜索的公司名称 company_name = '某公司' # 构造搜索结果页面的 URL url = f'https://www.qcc.com/search?key={company_name}' # 发送 GET 请求,获取搜索结果页面内容 response = requests.get(url, headers=headers) # 解析搜索结果页面内容 soup = BeautifulSoup(response.text, 'html.parser') # 找到包含手机号码的元素 phone_element = soup.find('span', {'class': 'phoneNum'}) # 提取手机号码 phone_number = phone_element.get_text() print(phone_number) ``` 需要注意的是,企查查对于未登录用户的访问进行了一定的限制,如果你需要频繁地爬取企查查的数据,可能会被限制访问。为了避免这种情况,你可以考虑使用付费的企查查 API,或者使用其他可靠的企业信息查询平台。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值