概述

使用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,甘肃 甘南
...
...

[python]爬取手机号码前缀和地区信息的更多相关文章

  1. 使用python爬取MedSci上的期刊信息

    使用python爬取medsci上的期刊信息,通过设定条件,然后获取相应的期刊的的影响因子排名,期刊名称,英文全称和影响因子.主要过程如下: 首先,通过分析网站http://www.medsci.cn ...

  2. python爬取当当网的书籍信息并保存到csv文件

    python爬取当当网的书籍信息并保存到csv文件 依赖的库: requests #用来获取页面内容 BeautifulSoup #opython3不能安装BeautifulSoup,但可以安装Bea ...

  3. python爬取“美团美食”汕头地区的所有店铺信息

    一.目的 获取美团美食每个店铺所有的评论信息,并保存到数据库和本地 二.实现步骤 获取所有店铺的poiId 首先观察详情页的url,后面是跟着一串数字的,而这一串数字代表着每个店铺特有的id号,我们称 ...

  4. 零基础爬虫----python爬取豆瓣电影top250的信息(转)

    今天利用xpath写了一个小爬虫,比较适合一些爬虫新手来学习.话不多说,开始今天的正题,我会利用一个案例来介绍下xpath如何对网页进行解析的,以及如何对信息进行提取的. python环境:pytho ...

  5. python爬取豌豆荚中的详细信息并存储到SQL Server中

    买了本书<精通Python网络爬虫>,看完了第6章,我感觉我好像可以干点什么:学的不多,其中的笔记我放到了GitHub上:https://github.com/NSGUF/PythonLe ...

  6. 用 Python 爬取网易严选妹子内衣信息,探究妹纸们的偏好

    网易商品评论爬取 分析网页 评论分析 进入到网易精选官网,搜索“文胸”后,先随便点进一个商品. 在商品页面,打开 Chrome 的控制台,切换至 Network 页,再把商品页Python入门到精通学 ...

  7. python爬取智联招聘职位信息(多进程)

    测试了下,采用单进程爬取5000条数据大概需要22分钟,速度太慢了点.我们把脚本改进下,采用多进程. 首先获取所有要爬取的URL,在这里不建议使用集合,字典或列表的数据类型来保存这些URL,因为数据量 ...

  8. python爬取所有微信好友的信息

    ''' 爬取所有T信好友的信息 ''' import itchat from pandas import DataFrame itchat.login() friends=itchat.get_fri ...

  9. python爬取智联招聘职位信息(单进程)

    我们先通过百度搜索智联招聘,进入智联招聘官网,一看,傻眼了,需要登录才能查看招聘信息 没办法,用账号登录进去,登录后的网页如下: 输入职位名称点击搜索,显示如下网页: 把这个URL:https://s ...

  10. python 爬取B站视频弹幕信息

    获取B站视频弹幕,相对来说很简单,需要用到的知识点有requests.re两个库.requests用来获得网页信息,re正则匹配获取你需要的信息,当然还有其他的方法,例如Xpath.进入你所观看的视频 ...

随机推荐

  1. 2022-05-09:k8s安装lalserver流媒体服务器,yaml如何写?

    2022-05-09:k8s安装lalserver流媒体服务器,yaml如何写? 答案2022-05-09: yaml如下: apiVersion: apps/v1 kind: Deployment ...

  2. 2022-04-11:给定一个正数数组arr,其中每个值代表砖块长度, 所有砖块等高等宽,只有长度有区别, 每一层可以用1块或者2块砖来摆, 要求每一层的长度一样, 要求必须使用所有的砖块, 请问最多

    2022-04-11:给定一个正数数组arr,其中每个值代表砖块长度, 所有砖块等高等宽,只有长度有区别, 每一层可以用1块或者2块砖来摆, 要求每一层的长度一样, 要求必须使用所有的砖块, 请问最多 ...

  3. drf序列化器之反序列化的数据验证

    模型层 from django.db import models # Create your models here. class Manufacturer(models.Model): ## 厂商 ...

  4. Requested setting LOGGING_CONFIG, but settings are not configured

  5. Cypress 踩坑记 - DOM 遮挡

    Cypress 是一个非常流行的测试工具,然而实际使用过程中发现一些问题,这里做些记录. 问题发现 在 Cypress 下 click 是非常常用的指令,然而在一些特殊场景下 click 并不能如想象 ...

  6. {"status":-1,"statusText":"ERR_CONNECT_FAILED"}

    今日使用weex 的stream 遇到一个极坑,也极傻的问题 一.steam.fetch 下面是我使用steam.fetch调用后台接口都截图 二.页面测试 奇怪的是,我借同事是手机来进行测试,有一个 ...

  7. 数据库SQL复习

    数据库SQL介绍 Def:SQL是一种极其高效的数据库系统语言:可以实现对数据库中的数据进行增删改查等操作 增加操作:使用create命令: 可以create table 可以create View ...

  8. 【VS Code 与 Qt6】QCheckBox的图标为什么不会切换?

    本篇专门扯一下有关 QCheckBox 组件的一个问题.老周不水字数,直接上程序,你看了就明白. #include <QApplication> #include <QWidget& ...

  9. Java的先行发生原则

    先行发生原则(Happens-Before)是Java内存模型定义的一个等效判断原则.依赖这个原则,我们可以通过几条简单规则判断数据是否存在竞争,线程是否安全,而不需要陷入Java内存模型苦涩难懂的定 ...

  10. 使用python连接阿里云iot平台时遇到的问题及解决方法(on_connect打印的rc值为9,上传物模型值)

    使用python连接阿里云iot平台时遇到的问题及解决方法                                                            on_connect打 ...