[python]爬取手机号码前缀和地区信息

简介: [python]爬取手机号码前缀和地区信息

概述

使用python爬取手机号码前缀7位、区号和地区。

小网站不容易,对爬虫也挺友好,就不放链接了。

代码

import requests
from lxml import etree
from fake_useragent import UserAgent
import time
def parse_page(url,header,cookie):
    """ 解析url,并写到文件中 """
    resp = requests.get(url,headers=header,cookies=cookie)
    html = etree.HTML(resp.text)
    filename = "phonenum.txt"
    # 爬取手机前缀
    phone_number_1 = html.xpath("//tr[@class='even']/td[1]/a/text()")
    # 爬取所在地区
    phone_number_1_city = html.xpath("//tr[@class='even']/td[2]/text()")
    # 爬取地区区号
    phone_number_1_citynum = html.xpath("//tr[@class='even']/td[4]/text()")
    phone_number_2 = html.xpath("//tr[@class='odd']/td[1]/a/text()")
    phone_number_2_city = html.xpath("//tr[@class='odd']/td[2]/text()")
    phone_number_2_citynum = html.xpath("//tr[@class='odd']/td[4]/text()")
    # 使用zip()组合爬取结果,并追加到文件中
    for i,j,k in zip(phone_number_1,phone_number_1_citynum,phone_number_1_city):
        with open(filename,"a",encoding="utf-8") as f_obj:
            f_obj.write(f"{i},{j},{k}\n")
    for x,y,z in zip(phone_number_2,phone_number_2_citynum,phone_number_2_city):
        with open(filename,"a",encoding="utf-8") as f_obj:
            f_obj.write(f"{x},{y},{z}\n")
        
def cookie_to_dict(cookie_src):
    cookie_dict = {}
    for i in cookie_src.split('; '):
        cookie_dict[i.split('=')[0]] = i.split('=')[1]
    return cookie_dict
def main():
    """ 执行主程序 """
    ua = UserAgent()
    # 地址很简单,直接range
    for page in range(1,1234):
        # 网站地址
        phone_url = "...........%d"%page
        phone_headers = {"User-Agent": ua.random}
        # 填写自己的cookie
        cookie_src = ""
        cookie = cookie_to_dict(cookie_src)
        parse_page(phone_url,phone_headers,cookie)
        print(f"page: {page}")
        # 暂停2秒,防止目标网站宕机
        time.sleep(2)
if __name__ == '__main__':
    main()

结果

爬取了463600条数据,部分数据如下:

...
...
1999451,0776,广西 百色
1999449,0772,广西 来宾
1999447,0774,广西 梧州
1999445,0778,广西 河池
1999443,0776,广西 百色
1999441,0771,广西 南宁
1999438,0931,甘肃 兰州
1999436,0931,甘肃 兰州
1999434,0943,甘肃 白银
1999432,0943,甘肃 白银
1999430,0943,甘肃 白银
1999418,0931,甘肃 兰州
1999416,0931,甘肃 兰州
1999414,0941,甘肃 甘南
1999412,0941,甘肃 甘南
...
...
相关文章
|
2月前
|
Python
Python编程获取当前日期的所属周日期信息
Python编程获取当前日期的所属周日期信息
50 1
|
1月前
|
缓存 监控 Linux
Python 实时获取Linux服务器信息
Python 实时获取Linux服务器信息
|
1月前
|
存储 数据采集 数据库
用 Python 爬取淘宝商品价格信息时需要注意什么?
使用 Python 爬取淘宝商品价格信息时,需注意法律和道德规范,遵守法律法规和平台规定,避免非法用途。技术上,可选择 Selenium 和 Requests 库,处理反爬措施如 IP 限制、验证码识别和请求频率控制。解析页面数据时,确定数据位置并清洗格式。数据存储可选择 CSV、Excel、JSON 或数据库,定期更新并去重。还需进行错误处理和日志记录,确保爬虫稳定运行。
|
1月前
|
数据采集 Web App开发 iOS开发
如何利用 Python 的爬虫技术获取淘宝天猫商品的价格信息?
本文介绍了使用 Python 爬虫技术获取淘宝天猫商品价格信息的两种方法。方法一使用 Selenium 模拟浏览器操作,通过定位页面元素获取价格;方法二使用 Requests 和正则表达式直接请求页面内容并提取价格。每种方法都有详细步骤和代码示例,但需注意反爬措施和法律法规。
|
2月前
|
小程序 Python
利用Python编程提取身份证的信息
利用Python编程提取身份证的信息
33 2
|
2月前
|
IDE 开发工具 数据安全/隐私保护
Python编程--实现用户注册信息写入excel文件
Python编程--实现用户注册信息写入excel文件
23 1
|
2月前
|
Python
用 Python 读取照片的 Exif 信息(顺便说说本人的一些想法)
用 Python 读取照片的 Exif 信息(顺便说说本人的一些想法)
95 2
|
3月前
|
Python
Python量化炒股的数据信息获取—获取沪深股市每日成交概况信息
Python量化炒股的数据信息获取—获取沪深股市每日成交概况信息
46 5
|
3月前
|
Kubernetes API 开发工具
【Azure Developer】通过SDK(for python)获取Azure服务生命周期信息
需要通过Python SDK获取Azure服务的一些通知信息,如:K8S版本需要更新到指定的版本,Azure服务的维护通知,服务处于不健康状态时的通知,及相关的操作建议等内容。
51 18
|
3月前
|
Python
Python量化炒股的数据信息获取—获取上市公司分红送股数据信息
Python量化炒股的数据信息获取—获取上市公司分红送股数据信息
53 3