直接上代码,不多说,还得去看看今天有啥子优惠呢!
import 一些库
def main():
ak = ' '#这个是自己申请的百度地图ak
baseurl = 'http://api.map.baidu.com/place/v2/search?query=麦当劳®ion=填入地区&output=json&output=json&ak={}&page_num={}&page_size=20'#每一页显示信息条数
datalist=getDate(baseurl)
saveDate(datalist)
askURL(baseurl)
def getDate(baseurl):
datalist=[]
dataout=askURL(baseurl)#爬取网页
jsondata = json.loads(dataout)
#这里可以加入一个循环去获取每一页
for j in jsondata['results']:
data=[]
name = j.get('name')
address = j.get('address')
tel = j.get('telephone')
data.append(name)
data.append(address)
data.append(tel)
#print(data)
datalist.append(data)#获取信息
print(datalist)
return datalist
def askURL(baseurl,ak):
kv={ 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'}##模拟浏览器头部信息,向服务器发送消息
dataout=""
i=0
try:
response=requests.get(baseurl.format(ak,i),headers=kv)#
response.encoding = 'utf-8'
dataout = response.text
#print(dataout)
except:
print("cuowu")
return dataout
#保存数据
def saveDate(datalist):
book=xlwt.Workbook(encoding='utf-8',style_compression=0)#创建book对象
sheet=book.add_sheet('麦当劳',cell_overwrite_ok=True)#创建工作表
col=("name","address","tel")
for i in range(0,3):
sheet.write(0,i,col[i])#列名
for i in range(0,20):
print("第%d条" %i)
data=datalist[i]
for j in range(0,3):
sheet.write(i+1,j,data[j])
book.save("麦当劳.xls")
if __name__=='__main__':
main()
print("爬取完毕!")