0
点赞
收藏
分享

微信扫一扫

Python爬取顶级域名(根域名)数据


主框架

Python爬取顶级域名(根域名)数据_数据获取

场景描述

  • 数据分析/挖掘过程中,某些场景利用​​根域名数据​​ 进行数据筛选 。
  • 在利用 Python 处理本地文件。

顶级域名数据获取方式

  • 方式 1
  • Python 2
  • ​​urllib2.urlopen()​​ 方法

import pandas as pd
import urllib2
from bs4 import BeautifulSoup

url='https://www.iana.org/domains/root/db' # IANA 官网
contents=urllib2.urlopen(url).read() # 1. 获取在线文件流

soup=BeautifulSoup(contents, 'lxml') # 2. BeautifulSoup

results=[]
for item in soup.find_all(name='span',attrs={'class':'domain tld'}): # 3. 解析并存储域名数据
results.append(item.get_text())


df=pd.DataFrame(results, columns=['rzone']) # 4. 利用 pandas 模块存储至硬盘
df.to_csv('./iana_root_zone.csv', encoding='utf8')

  • 方式 2 (推荐)
  • Python 3
  • ​​requests​​.get() 方法

import pandas as pd
import requests
from bs4 import BeautifulSoup

results=[]
url='https://www.iana.org/domains/root/db' # IANA 官网
contents=requests.get(url) # 1. 获取在线文件流

if contents.status_code == 200:
soup=BeautifulSoup(contents, 'lxml') # 2. BeautifulSoup
for item in soup.find_all(name='span',attrs={'class':'domain tld'}): # 3. 解析并存储域名数据
results.append(item.get_text())


df=pd.DataFrame(results, columns=['rzone']) # 4. 利用 pandas 模块存储至硬盘
df.to_csv('./iana_root_zone.csv', encoding='utf8')

  • 方式 3
  • 本人在通过程序下载目的文件流时,耗时较多。(应该是网速的问题)
  • 所以,手动下载,利用Python对本地文件进行了解析。
  • 根据自己的喜好选择数据获取方式。

# 关键代码
results=[]
contents=open('./IANA_Root_Zone_Database.html').read() # 1. 获取在线文件流

soup=BeautifulSoup(contents, 'lxml') # 2. BeautifulSoup
for item in soup.find_all(name='span',attrs={'class':'domain tld'}): # 3. 解析并存储域名数据
results.append(item.get_text())




举报

相关推荐

0 条评论