前沿
Python的强大已经在AI领域早已展现,作为一个高级语言,它的简洁性无语言表,爬取一个网页只需要一行代码就可以搞定,为我们节约了大量的编码工作
门槛
当然,只要你有编程经验和懂点计算机的原理,学习任何一门计算机语言都会很快。就Python来说,它本身的基本语法并不难,只要你注意代码的缩进,再会使用几个常用的函数,就可以基本入门Python了。如果你没有编程经验,我相信只要你肯花时间,学习它也不会花多少时间的
安装
可以参考https://www.liaoxuefeng.com/,当然,这个只是python的基本包的安装;如果你需要其他库的话,请注意python2.x和python3.x的区别,它们不兼容,因此遇到坑的时候,就多百度,谷歌一下了(我就是为了安装pymssql这个库,花费了很多时间,主要是本机的工具版本各种不兼容)
使用
基本语法我就不班门弄斧了,很简单。下面就是我写了一个简单的脚本
实战
目的:将数据库中的地址信息中有问题的经纬度,转换成正确的经纬度(输入地址,获取经纬度,也就是地理编码)
步骤:
1.读取Sqlserver中的有问题行的数据
2.通过高德的地理编码restful接口,获取正确的经纬度
3.最后,正确的经纬度更新到数据中
import pymssql
import requests
import json
#Judge the String is "String"
def is_String(s):
try:
float(s)
return False
except ValueError:
pass
try:
import unicodedata
unicodedata.numeric(s)
return Flase
except (TypeError, ValueError):
pass
return True
#Get AddressInfo from AMap
def getLonLat(s):
url = 'https://restapi.amap.com/v3/geocode/geo'
url = url + '?address='+s
url = url + "&output=json&key=填写你的key"
response = requests.get(url)
obj=json.loads(response.text)
return obj.get("geocodes")[0].get('location')
#Connect SqlServer
conn = pymssql.connect(host="填写你的IP",port=1433,user="用户名",password="数据库密码",
database="数据库名称",charset="utf8",tds_version="7.0")
cursor = conn.cursor()
# execute The Query
cursor.execute("SELECT scanId,longitude,ScanAddress FROM ScanData")
row = cursor.fetchone()
sqlArr = []
#下面这个i,不用管它,拿来计数的,因为我不想等太久了,只想处理1000次以下就可以了
i = 0
# 也可以使用for循环来迭代查询结果
# for row in cursor:
# print("ID=%d, Name=%s" % (row[0], row[1]))
while row:
if i < 1000:
if is_String(row[1]):
i = i+1
arr = getLonLat(row[2]).split(',')
print("lon=%s, lat=%s" % (arr[0], arr[1]))
sql = "update scanData set longitude='"+arr[0]+"',latitude='"+arr[1]+"' where scanId='"+str(row[0])+"'"
sqlArr.append(sql)
row = cursor.fetchone()
for sql in sqlArr:
print(sql)
cursor.execute(sql)
conn.commit()
# 关闭连接
conn.close()
说明
请注意,一定要注意代码的缩进,上面的代码可能由于排版的问题,会导致无法运行的。
总结
上面的代码,我只用了半天就搞定了,还包括弄环境之类的,并不是我有多么厉害,而是编码的经验多了,各类计算机语言都是相通的,并且Python的门槛真的很低,部分地方上的中小学都开始教Python的课程了(以后可能会全民编码了,哈哈哈)。当然上面的代码也是入门而已,和真正做项目还有很大的差距。Python的强大不仅是做爬虫而已,而且滴滴,Uber等巨头公司直接用它来做后台服务。