实例5:IP地址归属地的自动查询

#ip查询全代码
import requests
import time
url='http://www.ip138.com/ips138.asp?ip=202.204.80.112'
r = requests.get(url)
print(r.status_code)
print(r.request.headers)

requests.exceptions.ConnectionError: HTTPConnectionPool(host='sewer.ip138.com', port=80): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x000001E6B69BD198>: Failed to establish
a new connection: [Errno 11001] getaddrinfo failed',))

尝试了很多方法都不能成功  具体请参考:https://blog.csdn.net/a1007720052/article/details/83383220?utm_medium=distribute.pc_relevant.none-task-blog-baidujs-1

但是都没能解决问题最后

 

kv = {'user-agent':'Mozilla/5.0'}
 r = requests.get(url,headers = kv)

复制代码
import requests
import time
url="https://m.ip138.com/iplookup.asp?ip="
kv = {'user-agent':'Mozilla/5.0'}
r  = requests.get(url + '202.204.80.112', headers = kv)
print(r.status_code)
r.encoding = r.apparent_encoding
print(r.request.headers)
print(r.text[-2000:-1000])
复制代码

因此以后每次爬取数据一般都先要

kv = {'user-agent':'Mozilla/5.0'}

200
{'user-agent': 'Mozilla/5.0', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}

<p class="form-hd">IP地址或者域名:</p>
<div class="form">
<form action="" method="get">
<input type="text" name="ip" size="30" class="form-text" value="202.204.80.112" />
<input type="submit" value="查询" class="form-btn" />
</form>
</div>
<div class="query-hd">ip138.com IP查询(搜索IP地址的地理位置)</div>
<h1 class="query">您查询的IP:202.204.80.112</h1><li><font color="blue">ASN归属地:北京市海淀区 北京理工大学 教育网 </font></li><li>参考数据1:北京北京 北京理工大学 教育网</li><li>参考数据2:北京理工大学 网络
中心</li>

</div>
</div>

<div class="footer">
<span>闽网文[2019]2517-043号</span><br/>
<a href="http://www.beian.miit.gov.cn/" rel="nofollow" target="_blank">闽ICP备15026659号-7</a><br/>
<a href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=35020302000956" rel="nofollow" target="_blank">闽公网安备35020302000956号</a>
</div>
</div>

<script type="text/javascript" src="/script/common.js"></script>

<script>
(function(){
var $script = document.createElement('script');

 

 

完整框架

 

 

复制代码
import requests
url="https://m.ip138.com/iplookup.asp?ip="
kv = {'user-agent':'Mozilla/5.0'}
try:
    r  = requests.get(url + '202.204.80.112', headers = kv)
    r.raise_for_status()
    r.encoding = r.apparent_encoding
    print(r.text[-2000:-1000])   #不要一下全输出
except:
    print('爬取失败')
复制代码

 



posted on   cltt  阅读(1783)  评论(0编辑  收藏  举报

编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示