Python爬虫系列3-通过Ip地址定位目标所在区域

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
简介: 在现如今的互联网时代,我们越来越依赖网络,甚至网络已经融入了我们的日常生活,甚至没有办法想象如果没有了网络,会造成什么样的情景?。。。
在进行下面环节的时候我们需要先明白一个点:什么是IP地址 ?
IP地址:IP地址分为局域网和广域网两种。它在全球范围内实现了不同硬件结构、不同操作系统、不同网络系统的互联。在整个Internet中,每一个节点都依靠唯一的IP地址互相区分和相互联系。
有网络的地方就一定有IP,因为IP地址的存在是构成现如今整个Internet的基础;非常的重要,而且每一台计算机只要连网了,都无权自行去设定属于自己的IP地址,估计大家会有一个疑惑?那IP地址是怎么来的呢?这会有一个统一的机构进行管理;在此我们先不过多去描述。

- 实战

这里我们分析的是专门做IP地址的一个大数据统计平台。

分析网站结构,确定我们要抓取的数据内容

image.png

经过分析,该网站的结构非常的简单,没有什么特别的,下面是我们需要抓取的内容;但在这里我运用了图形界面来做。
image.png

我们的需求是这样的:

1、有一个可被用户输入ip地址的输入框

2、一个可被用户点击确定要查询的按钮

3、一个可用来展示通过爬虫抓取网站数据后的区域

from tkinter import *

# 创建主窗口
root = Tk()
# 设置标题内容
root.title("PM-ip定位")
# 创建输入框并设置尺寸  
ip_input = Entry(root, width=40)
# 创建一个回显列表  
display_info = Listbox(root, width=60, height=10)
# 创建查询按钮
result_button = Button(root, text=" 查 询 ")

if __name__ == '__main__':
    # 完成布局  显示
    ip_input.pack()
    display_info.pack()
    result_button.pack()
    # 循环
    root.mainloop()

运行之后是一个非常简单的界面;关于里面的一些属性应用 ,也都是非常简单的,这里就不过多描述了

我这里有跟本章节配套的视频,如果有需要的可以联系我!
image.png

接下来,我们通过爬虫抓取数据并跟上述界面融合在一起;

第一步:获取数据

如果大家觉得阅读有困难,包括headers我是一键生成的;可以参考我前2篇文章,有很详细的介绍,这里就一概而过了。

import requests

# 查询函数, 接收用户输入的ip地址
def get_find_position():
    # 伪装
    headers = {
        'Connection': 'keep-alive',
        'Cache-Control': 'max-age=0',
        'Upgrade-Insecure-Requests': '1',
        'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36',
        'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3',
        'Referer': 'https://www.ipip.net/ip.html',
        'Accept-Encoding': 'gzip, deflate, br',
        'Accept-Language': 'zh-CN,zh;q=0.9',
    }
    # 发送请求并获取返回数据
    response = requests.get('https://www.ipip.net/ip/175.0.59.43.html', headers=headers).text
    
    print(response)
    

第二步: 运用re正则表达式 ;解析数据内容

正则表达式是非常灵活的一种解析方式,这里运用了简单粗暴的通配符方案(.*?) 。

import re

# 正则表达式
address = re.search(r'地理位置.*?;">(.*?)</span>', response, re.S)
operator = re.search(r'运营商.*?;">(.*?)</span>', response, re.S)
time = re.search(r'时区.*?;">(.*?)</span>', response, re.S)
wrap = re.search(r'地区中心经纬度.*?;">(.*?)</span>', response, re.S)

第三步:将解析内容在界面中进行展示

这里运用了回传,将解析的内容回传至窗口列表中进行展示。

# 判断是否匹配成功
if address:
    # 匹配成功则一定有ip和地理位置信息
    ip_info_list = ['地理位置:   ' + address.group(1), '当前IP:   ' + ip]
    # 分别判断其他信息匹配结果, 成功则加入临时列表
    if operator:
        ip_info_list.insert(0, '所有者/运营商:   ' + operator.group(1))
    if time:
        ip_info_list.insert(0, '时区:   ' + time.group(1))
    if wrap:
        ip_info_list.insert(0, '地区中心经纬度:   ' + wrap.group(1))
        
    # 清空之前的回显列表
    display_info.delete(0, 5)
else:
    display_info.insert(0, "无效的ip!")

在图形界面中Button组件有一个属性为command,这个属性可以绑定一个事件,当我们点击这个组件的时候,会执行绑定的事件,而这个是事件就是我们的爬虫。

result_button = Button(root, command=get_find_position, text=" 查 询 ")

image.png

image.png

在这个浮躁的时代;竟然还有人能坚持篇篇原创;

如果本文对你学习有所帮助-可以点赞👍+ 关注!将持续更新更多新的文章。

支持原创。感谢!

相关文章
|
6天前
|
数据采集 存储 XML
Python爬虫定义入门知识
Python爬虫是用于自动化抓取互联网数据的程序。其基本概念包括爬虫、请求、响应和解析。常用库有Requests、BeautifulSoup、Scrapy和Selenium。工作流程包括发送请求、接收响应、解析数据和存储数据。注意事项包括遵守Robots协议、避免过度请求、处理异常和确保数据合法性。Python爬虫强大而灵活,但使用时需遵守法律法规。
|
7天前
|
数据采集 缓存 定位技术
网络延迟对Python爬虫速度的影响分析
网络延迟对Python爬虫速度的影响分析
|
8天前
|
数据采集 Web App开发 监控
高效爬取B站评论:Python爬虫的最佳实践
高效爬取B站评论:Python爬虫的最佳实践
|
15天前
|
数据采集 存储 JSON
Python网络爬虫:Scrapy框架的实战应用与技巧分享
【10月更文挑战第27天】本文介绍了Python网络爬虫Scrapy框架的实战应用与技巧。首先讲解了如何创建Scrapy项目、定义爬虫、处理JSON响应、设置User-Agent和代理,以及存储爬取的数据。通过具体示例,帮助读者掌握Scrapy的核心功能和使用方法,提升数据采集效率。
59 6
|
9天前
|
数据采集 存储 JSON
Python爬虫开发中的分析与方案制定
Python爬虫开发中的分析与方案制定
|
14天前
|
数据采集 JSON 测试技术
Python爬虫神器requests库的使用
在现代编程中,网络请求是必不可少的部分。本文详细介绍 Python 的 requests 库,一个功能强大且易用的 HTTP 请求库。内容涵盖安装、基本功能(如发送 GET 和 POST 请求、设置请求头、处理响应)、高级功能(如会话管理和文件上传)以及实际应用场景。通过本文,你将全面掌握 requests 库的使用方法。🚀🌟
36 7
|
13天前
|
数据采集 Web App开发 JavaScript
爬虫策略规避:Python爬虫的浏览器自动化
爬虫策略规避:Python爬虫的浏览器自动化
|
14天前
|
数据采集 存储 XML
Python实现网络爬虫自动化:从基础到实践
本文将介绍如何使用Python编写网络爬虫,从最基础的请求与解析,到自动化爬取并处理复杂数据。我们将通过实例展示如何抓取网页内容、解析数据、处理图片文件等常用爬虫任务。
|
16天前
|
数据采集 Web App开发 iOS开发
如何利用 Python 的爬虫技术获取淘宝天猫商品的价格信息?
本文介绍了使用 Python 爬虫技术获取淘宝天猫商品价格信息的两种方法。方法一使用 Selenium 模拟浏览器操作,通过定位页面元素获取价格;方法二使用 Requests 和正则表达式直接请求页面内容并提取价格。每种方法都有详细步骤和代码示例,但需注意反爬措施和法律法规。
|
16天前
|
数据采集 存储 Web App开发
利用Python 的爬虫技术淘宝天猫销量和库存
使用 Python 爬虫技术获取淘宝天猫商品销量和库存的步骤包括:1. 安装 Python 和相关库(如 selenium、pandas),下载浏览器驱动;2. 使用 selenium 登录淘宝或天猫;3. 访问商品页面,分析网页结构,提取销量和库存信息;4. 处理和存储数据。注意网页结构可能变化,需遵守法律法规。