首先要先道歉,爬虫部分无限期押后,
现在的精力主要放在写教材上。录基础部分视频时怎么方便怎么来,没考虑到国内的朋友要翻墙才能访问某些国外的网站,这段时间通过看网友的留言更有了把一些实例墙内化的想法。
录这套视频的初衷是觉得python对提高效率很有帮助,希望更多的人了解这个工具。现在有机会写本基础教程既可以修正一些错误、改进教学内容又多一个传播途径,所以就把手头的工作都停下来,专心想赶快把教材写完好继续前行。
我能量值特别低,又胸(爱)怀(看)天(八)下(卦),所以进度跟蜗牛与黄鹂鸟里那只蜗牛爬树的速度差不多。
再一个是代码,等网站建好后主要代码会贴到网站上,网站在建中...
建网站的koala同学主业不仅不是这个,还挺繁重......
对于建网站他是现学现卖,一边学一边建,目前好像被一个问题给卡住了~~~Too bad!!!
他建网站那玩意我一窍不通,所以一点忙帮不上。等他把网站搞定了,我就把如何建网站这门手艺“偷”学过来,然后教给你们哈,比较适合小门小户请不起专业网站制作公司......完了还想建网站的银
我正在写教程的JSON这章,觉得这个把域名转成IP地址,再定位IP地址是哪个城市的的代码很有用。用的是高德API,要自己去高德网站上申请APP Key,过程不麻烦,注册个账号就行了。
把要查询的域名放进一个txt文件,文件内容长这样:
微博: weibo.com
微信: wechat.com
淘宝: taobao.com
B站: bilibili.com
网易: 163.com
知乎: zhihu.com
高德: amap.com
Python代码如下:
import requests # 向网站提取数据用
import socket # 域名转IP地址用
import json # 解析JSON数据用
h = open('/Users/PythonABC/documents/nameL.txt', 'r')
# 打开存有网址的txt文件,替换成你自己的路径和文件名
appID = '12345'
# 用你自己在高德网站申请的App Key替换掉12345
url = 'https://restapi.amap.com/v3/ip?'
# 基础字串,高德网站上给开发者看的技术文档上有
recordList = h.readlines()
# 以列表形式存储每条记录
for record in recordList: # 依次提取每条记录
name, domain = record.split()
# 网站名和域名分别提取到变量里
ip = socket.gethostbyname(domain)
# 域名转成IP地址,注意这里的域名参数domain接收的域名
# 前面不能有http://,如果有用domain=domain[7:]处理下
urlIP = url+'ip=' + ip + '&output=json&key=' + appID
# 按照指定格式把参数跟基本字串连接起来
response = requests.get(urlIP)
# 向高德提请数据
jsonData = json.loads(response.text)
# 解析json
city = jsonData.get('city')
print('{}\n域名:{:15}IP地址:{:20}所在城市:{}\n'.format(name, domain, ip, city))
高德只能定位国内的IP地址,如果定位国外的可以用ipstack的API:
import requests
import socket
import json
h = open('/Users/PythonABC/documents/nameL.txt', 'r') appID = '12345'
url = 'http://api.ipstack.com/'
recordList = h.readlines()
for record in recordList:
name, domain = record.split()
ip = socket.gethostbyname(domain)
urlIP = url + ip + '?access_key=' + appID
response = requests.get(urlIP)
jsonData = json.loads(response.text)
city = jsonData.get('city')
country = jsonData.get('country_name')
print('{}\n域名:{:15}IP地址:{:20}所在国家:{:15}所在城市:{}\n'.format(name, domain, ip, country, city))
上面有个域名两个网站查出来的城市竟然不一样,不知道哪个正确