第一周实例五
借用http://m.ip138.com/这个网站来查询IP地址。
查询界面如下所示:
初始没有加入‘user-agent’字段,被认作是爬虫因此ip138网站拦截,因此要在代码中加入此字段,模拟网页访问。
'Mozilla/5.0'是一个很标准的浏览器身份标识字段。
- 源代码:
import requests
url = "https://m.ip138.com/iplookup.asp?ip="
kv = {'User-Agent':'Mozilla/5.0'} #增加键值对kv,模拟网页登录
try:
r = requests.get(url + '202.204.80.112', headers = kv)
#将headers中的user-agent改为Mozilla/5.0
r.raise_for_status()
r.encoding = r.apparent_encoding
print(r.text[-1800:-1500])
except:
print("爬取失败")
- 运行结果:
t 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>
其中r.text[-1800:-1500]表示的是对爬取回来的内容进行切片,支取倒数1800到倒数1500之间的内容,可以大大减小数据量。