requests 版本

#!/usr/bin/env python
# coding=utf-8
import requests
import pandas as pd
from pandas import DataFrame, Series
import json
from datetime import timedelta
from datetime import datetime
from initengine import engine_localhost
from functools import reduce
from urllib.parse import unquote
import re
import chompjs
TODAY = datetime.now().strftime("%Y-%m-%d")
THREE_MONTHS_AGO = (datetime.now()+timedelta(days=-90) ).strftime("%Y-%m") + '-'+datetime.now().strftime("%d")def get_token(keywords,country,time='today 3-m'):"""获取 token"""headers = {'authority': 'trends.google.com','sec-ch-ua': '" Not;A Brand";v="99", "Google Chrome";v="91", "Chromium";v="91"','accept': 'application/json, text/plain, */*','sec-ch-ua-mobile': '?0','user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36','x-client-data': 'CJC2yQEIo7bJAQjEtskBCKmdygEIi/3KAQiMnssBCKegywEI8PDLAQis8ssBCNzyywEI8PLLAQjv98sBCLT4ywEInvnLAQiv+ssBCLH6ywEYuvLLARiQ9csB','sec-fetch-site': 'same-origin','sec-fetch-mode': 'cors','sec-fetch-dest': 'empty','referer': 'https://trends.google.com/trends/explore?date=today%203-m&geo=NG&q=Jumia,jiji,Kilimall,Naivas,Avechi','accept-language': 'zh-CN,zh;q=0.9','cookie': '__utmz=10102256.1626429382.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utma=10102256.343699485.1626429382.1626949297.1627024060.4; __utmc=10102256; __utmt=1; __utmb=10102256.1.10.1627024060; HSID=AzbAhLGjWNBnaeSg5; SSID=AbCtluR_Fke88ijZ_; APISID=wWv3y4ORv3Nfei-i/AC3BTttxU99t5IOQA; SAPISID=M7WAvaTw62jm9rCx/AJOFjbbTIM353MMbT; __Secure-3PAPISID=M7WAvaTw62jm9rCx/AJOFjbbTIM353MMbT; SEARCH_SAMESITE=CgQIr5IB; SID=_Ac1s4eJ00tERsfuV7j4h9BIM-7q_eSR5ITGiKPDHuYhMe-vqqWO-BsPjem9iahGfYugXw.; __Secure-3PSID=_Ac1s4eJ00tERsfuV7j4h9BIM-7q_eSR5ITGiKPDHuYhMe-vaU1E9dNhztOYYpMT0xNdIw.; 1P_JAR=2021-07-23-03; NID=219=o5ojNMPZk-VDvmoEpRCGbhARHKeFUd7SUI8jV5feTLZSHZ1jZYzDbaPOfyZQyfd1H3_HQbdaSwZNNdmrUh6jDYFGLL_KLeaGxXJpDtH-JFH9DYWMDoV8MxaaOTaIcNAyvSA5n92HF-txYfkbmjK7EZJpgLzhhk84QTNCcSSi-7Wzx2bc34X45sKe3MGVLGEREFhLWpaUtKBAvNhLwg7ndhrPjGe90jpNpyTeIy4XkJBdGGB-SZWDWtWrOPtl3WEHl8HoIXI5; SIDCC=AJi4QfGxAl6XeAfEqVwTUQEK5YprfGuMyvM0wz3HaXJntjSPk5owPm0f_LongSeWD5NJzwglXg; __Secure-3PSIDCC=AJi4QfGAtKHhFIhaNqN72X4V93Ra39nFF4CFzZ84xOoITLIUvD6Sn0R3zLq9c5zhYcpZNMv7Bw',}req = {"comparisonItem":[ {"keyword": keyword ,"geo":country,"time":"today 3-m"} for keyword in keywords ],"category":0,"property":""}params = (('hl', 'zh-CN'),('tz', ['-480', '-480']),('req', json.dumps(req)),)response = requests.get('https://trends.google.com/trends/api/explore', headers=headers, params=params)print(unquote(response.url))token = chompjs.parse_js_object(response.content.decode())['widgets'][0]['token']return tokendef get_keywords_trend(keywords,country,token,start_date=THREE_MONTHS_AGO,end_date=TODAY):"""根据关键词和国家返回趋势数据集"""headers = {'authority': 'trends.google.com','sec-ch-ua': '" Not;A Brand";v="99", "Google Chrome";v="91", "Chromium";v="91"','accept': 'application/json, text/plain, */*','sec-ch-ua-mobile': '?0','user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36','x-client-data': 'CJC2yQEIo7bJAQjEtskBCKmdygEIi/3KAQiMnssBCKegywEI8PDLAQis8ssBCN3yywEI7/LLAQjv98sBCLT4ywEInvnLAQj7+csBCK/6ywEIsfrLARi68ssBGJD1ywE=','sec-fetch-site': 'same-origin','sec-fetch-mode': 'cors','sec-fetch-dest': 'empty','referer': 'https://trends.google.com/trends/explore?date=today%203-m&geo=NG&q=Jumia,jiji,Kilimall,Naivas,Avechi','accept-language': 'zh-CN,zh;q=0.9','cookie': '__utmz=10102256.1626429382.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utma=10102256.343699485.1626429382.1626429382.1626948944.2; __utmc=10102256; __utmt=1; __utmb=10102256.4.9.1626949249014; HSID=AzbAhLGjWNBnaeSg5; SSID=AbCtluR_Fke88ijZ_; APISID=wWv3y4ORv3Nfei-i/AC3BTttxU99t5IOQA; SAPISID=M7WAvaTw62jm9rCx/AJOFjbbTIM353MMbT; __Secure-3PAPISID=M7WAvaTw62jm9rCx/AJOFjbbTIM353MMbT; SEARCH_SAMESITE=CgQIr5IB; SID=_Ac1s4eJ00tERsfuV7j4h9BIM-7q_eSR5ITGiKPDHuYhMe-vqqWO-BsPjem9iahGfYugXw.; __Secure-3PSID=_Ac1s4eJ00tERsfuV7j4h9BIM-7q_eSR5ITGiKPDHuYhMe-vaU1E9dNhztOYYpMT0xNdIw.; 1P_JAR=2021-07-22-07; NID=219=TfRj2AS_SBj3ZmflUiBaPqeunwsz5qziMRTT_km4WLGO0dZf9I0QgFIHrdgE5J-u6OqY7wYrL6KP3eJHt1WG-9wn3y12jD6iS5ivusWy9hAzSzvkusw7kRlBR2Rm19JWcoVMLUyZHV-qaJgEdtzteQ5dLemhQRSr1GxOogEQmg1DJiVmwGK4EJ3eFV2M1D0KviMEd7ua0XKYCCdPqNQOV-EMMGQUGZsiQdXBvTLy9jJbRpZBBP7vo6zyOIjjDymaMba0pIfx; SIDCC=AJi4QfH0UI6JQnI1iTTDKwWJGZjES9eGS6e8zAKNOniD4dXIF-D_4ZuXRKU5ZekywDUd0WUuLA; __Secure-3PSIDCC=AJi4QfE5XNvUJKrD5t2G6qscZfAJghVqoXG-Yk6bHxOFBZpCcREo9SuwZ7dZC1IVyRhGGazlhg',}req = {"time":f"{start_date} {end_date}","resolution":"DAY","locale":"zh-CN","comparisonItem":[   { "geo":{"country":country},"complexKeywordsRestriction":{"keyword":[{"type":"BROAD", "value":keyword}] } }  \for keyword in keywords],"requestOptions":{"property":"","backend":"IZG","category":0}}params = (('hl', 'zh-CN'),('tz',  ['-480','-480']),('req', json.dumps(req)),('token', token),)res = requests.get('https://trends.google.com/trends/api/widgetdata/multiline', headers=headers,params=params)response = res.content.decode()print(unquote(res.url))data_list = chompjs.parse_js_object(response)['default']['timelineData']value_series =Series(reduce( list.__add__ ,[ data['value']  for data in data_list  ]) )keywords_series = Series( keywords*len(data_list) )date_series = Series( reduce( list.__add__ ,  [ [ re.sub('[年月]','-',data['formattedTime'].strip('日')) ]*len(keywords)  for data in data_list ]) )df = DataFrame(columns=['crawl_time','date','country','keyword','value'])df['keyword'] = keywords_seriesdf['value'] = value_seriesdf['date'] =  date_seriesdf['crawl_time'] = TODAYdf['country'] = countryreturn df#NB. Original query string below. It seems impossible to parse and
#reproduce query strings 100% accurately so the one below is given
#in case the reproduced version is not "correct".
# response = requests.get('https://trends.google.com/trends/api/widgetdata/multiline?hl=zh-CN&tz=-480&req=%7B%22time%22:%222021-04-22+2021-07-22%22,%22resolution%22:%22DAY%22,%22locale%22:%22zh-CN%22,%22comparisonItem%22:%5B%7B%22geo%22:%7B%22country%22:%22NG%22%7D,%22complexKeywordsRestriction%22:%7B%22keyword%22:%5B%7B%22type%22:%22BROAD%22,%22value%22:%22Jumia%22%7D%5D%7D%7D,%7B%22geo%22:%7B%22country%22:%22NG%22%7D,%22complexKeywordsRestriction%22:%7B%22keyword%22:%5B%7B%22type%22:%22BROAD%22,%22value%22:%22jiji%22%7D%5D%7D%7D,%7B%22geo%22:%7B%22country%22:%22NG%22%7D,%22complexKeywordsRestriction%22:%7B%22keyword%22:%5B%7B%22type%22:%22BROAD%22,%22value%22:%22Kilimall%22%7D%5D%7D%7D,%7B%22geo%22:%7B%22country%22:%22NG%22%7D,%22complexKeywordsRestriction%22:%7B%22keyword%22:%5B%7B%22type%22:%22BROAD%22,%22value%22:%22Naivas%22%7D%5D%7D%7D,%7B%22geo%22:%7B%22country%22:%22NG%22%7D,%22complexKeywordsRestriction%22:%7B%22keyword%22:%5B%7B%22type%22:%22BROAD%22,%22value%22:%22Avechi%22%7D%5D%7D%7D%5D,%22requestOptions%22:%7B%22property%22:%22%22,%22backend%22:%22IZG%22,%22category%22:0%7D%7D&token=APP6_UEAAAAAYPqYMLtcPo0zmfbw2j2hGFjDcsvQAu2m&tz=-480', headers=headers)
def main():token  = get_token(keywords='Jumia,jiji,Kilimall,Naivas,Avechi'.split(','), country='NG')print(token)df = get_keywords_trend(keywords='Jumia,jiji,Kilimall,Naivas,Avechi'.split(','), country='NG',token=token)df.to_sql('google_keyword_trend', engine_localhost, index=False, if_exists='append')print(df)if __name__=='__main__':main()

asyncio+aiohttp 异步版本

#!/usr/bin/env python
# coding=utf-8
# import requests
import aiohttp
import pandas as pd
from pandas import DataFrame, Series
import json
from datetime import timedelta
from datetime import datetime
from initengine import engine_localhost
from functools import reduce
import re
from urllib.parse import urlencode
from yarl import URL
import chompjs
TODAY = datetime.now().strftime("%Y-%m-%d")
THREE_MONTHS_AGO = (datetime.now()+timedelta(days=-90) ).strftime("%Y-%m") + '-'+datetime.now().strftime("%d")
import asyncio
from urllib.parse import unquoteasync def get_token(keywords,country,time='today 3-m'):"""获取 token"""headers = {'authority': 'trends.google.com','sec-ch-ua': '" Not;A Brand";v="99", "Google Chrome";v="91", "Chromium";v="91"','accept': 'application/json, text/plain, */*','sec-ch-ua-mobile': '?0','user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36','x-client-data': 'CJC2yQEIo7bJAQjEtskBCKmdygEIi/3KAQiMnssBCKegywEI8PDLAQis8ssBCNzyywEI8PLLAQjv98sBCLT4ywEInvnLAQiv+ssBCLH6ywEYuvLLARiQ9csB','sec-fetch-site': 'same-origin','sec-fetch-mode': 'cors','sec-fetch-dest': 'empty','referer': 'https://trends.google.com/trends/explore?date=today%203-m&geo=NG&q=Jumia,jiji,Kilimall,Naivas,Avechi','accept-language': 'zh-CN,zh;q=0.9','cookie': '__utmz=10102256.1626429382.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utma=10102256.343699485.1626429382.1626949297.1627024060.4; __utmc=10102256; __utmt=1; __utmb=10102256.1.10.1627024060; HSID=AzbAhLGjWNBnaeSg5; SSID=AbCtluR_Fke88ijZ_; APISID=wWv3y4ORv3Nfei-i/AC3BTttxU99t5IOQA; SAPISID=M7WAvaTw62jm9rCx/AJOFjbbTIM353MMbT; __Secure-3PAPISID=M7WAvaTw62jm9rCx/AJOFjbbTIM353MMbT; SEARCH_SAMESITE=CgQIr5IB; SID=_Ac1s4eJ00tERsfuV7j4h9BIM-7q_eSR5ITGiKPDHuYhMe-vqqWO-BsPjem9iahGfYugXw.; __Secure-3PSID=_Ac1s4eJ00tERsfuV7j4h9BIM-7q_eSR5ITGiKPDHuYhMe-vaU1E9dNhztOYYpMT0xNdIw.; 1P_JAR=2021-07-23-03; NID=219=o5ojNMPZk-VDvmoEpRCGbhARHKeFUd7SUI8jV5feTLZSHZ1jZYzDbaPOfyZQyfd1H3_HQbdaSwZNNdmrUh6jDYFGLL_KLeaGxXJpDtH-JFH9DYWMDoV8MxaaOTaIcNAyvSA5n92HF-txYfkbmjK7EZJpgLzhhk84QTNCcSSi-7Wzx2bc34X45sKe3MGVLGEREFhLWpaUtKBAvNhLwg7ndhrPjGe90jpNpyTeIy4XkJBdGGB-SZWDWtWrOPtl3WEHl8HoIXI5; SIDCC=AJi4QfGxAl6XeAfEqVwTUQEK5YprfGuMyvM0wz3HaXJntjSPk5owPm0f_LongSeWD5NJzwglXg; __Secure-3PSIDCC=AJi4QfGAtKHhFIhaNqN72X4V93Ra39nFF4CFzZ84xOoITLIUvD6Sn0R3zLq9c5zhYcpZNMv7Bw',}req = {"comparisonItem":[ {"keyword": keyword ,"geo":country,"time":"today 3-m"} for keyword in keywords ],"category":0,"property":""}params = {'hl':'zh-CN','tz':['-480','-480'],'req':json.dumps(req),}async with aiohttp.ClientSession(headers=headers) as session:async with session.get('https://trends.google.com/trends/api/explore',params=params) as res:text = await res.text()token = chompjs.parse_js_object(text)['widgets'][0]['token'] # response = requests.get('https://trends.google.com/trends/api/explore', headers=headers, params=params)return tokenasync def get_keywords_trend(keywords,country,token,start_date=THREE_MONTHS_AGO,end_date=TODAY):"""根据关键词和国家返回趋势数据集"""headers = {'authority': 'trends.google.com','sec-ch-ua': '" Not;A Brand";v="99", "Google Chrome";v="91", "Chromium";v="91"','accept': 'application/json, text/plain, */*','sec-ch-ua-mobile': '?0','user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36','x-client-data': 'CJC2yQEIo7bJAQjEtskBCKmdygEIi/3KAQiMnssBCKegywEI8PDLAQis8ssBCN3yywEI7/LLAQjv98sBCLT4ywEInvnLAQj7+csBCK/6ywEIsfrLARi68ssBGJD1ywE=','sec-fetch-site': 'same-origin','sec-fetch-mode': 'cors','sec-fetch-dest': 'empty','referer': 'https://trends.google.com/trends/explore?date=today%203-m&geo=NG&q=Jumia,jiji,Kilimall,Naivas,Avechi','accept-language': 'zh-CN,zh;q=0.9','cookie': '__utmz=10102256.1626429382.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utma=10102256.343699485.1626429382.1626429382.1626948944.2; __utmc=10102256; __utmt=1; __utmb=10102256.4.9.1626949249014; HSID=AzbAhLGjWNBnaeSg5; SSID=AbCtluR_Fke88ijZ_; APISID=wWv3y4ORv3Nfei-i/AC3BTttxU99t5IOQA; SAPISID=M7WAvaTw62jm9rCx/AJOFjbbTIM353MMbT; __Secure-3PAPISID=M7WAvaTw62jm9rCx/AJOFjbbTIM353MMbT; SEARCH_SAMESITE=CgQIr5IB; SID=_Ac1s4eJ00tERsfuV7j4h9BIM-7q_eSR5ITGiKPDHuYhMe-vqqWO-BsPjem9iahGfYugXw.; __Secure-3PSID=_Ac1s4eJ00tERsfuV7j4h9BIM-7q_eSR5ITGiKPDHuYhMe-vaU1E9dNhztOYYpMT0xNdIw.; 1P_JAR=2021-07-22-07; NID=219=TfRj2AS_SBj3ZmflUiBaPqeunwsz5qziMRTT_km4WLGO0dZf9I0QgFIHrdgE5J-u6OqY7wYrL6KP3eJHt1WG-9wn3y12jD6iS5ivusWy9hAzSzvkusw7kRlBR2Rm19JWcoVMLUyZHV-qaJgEdtzteQ5dLemhQRSr1GxOogEQmg1DJiVmwGK4EJ3eFV2M1D0KviMEd7ua0XKYCCdPqNQOV-EMMGQUGZsiQdXBvTLy9jJbRpZBBP7vo6zyOIjjDymaMba0pIfx; SIDCC=AJi4QfH0UI6JQnI1iTTDKwWJGZjES9eGS6e8zAKNOniD4dXIF-D_4ZuXRKU5ZekywDUd0WUuLA; __Secure-3PSIDCC=AJi4QfE5XNvUJKrD5t2G6qscZfAJghVqoXG-Yk6bHxOFBZpCcREo9SuwZ7dZC1IVyRhGGazlhg',}req = {"time":f"{start_date} {end_date}","resolution":"DAY","locale":"zh-CN","comparisonItem":[   { "geo":{"country":country},"complexKeywordsRestriction":{"keyword":[{"type":"BROAD", "value":keyword}] } }  \for keyword in keywords],"requestOptions":{"property":"","backend":"IZG","category":0}}params = {'hl':'zh-CN','tz':'-480','req': json.dumps(req),'token': token ,}async with aiohttp.ClientSession(headers=headers) as session:async with session.get('https://trends.google.com/trends/api/widgetdata/multiline'+f'?{urlencode(params)}') as res:response = await res.text()# print(response)data_list = chompjs.parse_js_object(response)['default']['timelineData']print(data_list)value_series =Series(reduce( list.__add__ ,[ data['value']  for data in data_list  ]) )keywords_series = Series( keywords*len(data_list) )date_series = Series( reduce( list.__add__ ,  [ [ re.sub('[年月]','-',data['formattedTime'].strip('日')) ]*len(keywords)  for data in data_list ]) )df = DataFrame(columns=['crawl_time','date','country','keyword','value'])df['keyword'] = keywords_seriesdf['value'] = value_seriesdf['date'] =  date_seriesdf['crawl_time'] = TODAYdf['country'] = countryreturn df#NB. Original query string below. It seems impossible to parse and
#reproduce query strings 100% accurately so the one below is given
#in case the reproduced version is not "correct".
# response = requests.get('https://trends.google.com/trends/api/widgetdata/multiline?hl=zh-CN&tz=-480&req=%7B%22time%22:%222021-04-22+2021-07-22%22,%22resolution%22:%22DAY%22,%22locale%22:%22zh-CN%22,%22comparisonItem%22:%5B%7B%22geo%22:%7B%22country%22:%22NG%22%7D,%22complexKeywordsRestriction%22:%7B%22keyword%22:%5B%7B%22type%22:%22BROAD%22,%22value%22:%22Jumia%22%7D%5D%7D%7D,%7B%22geo%22:%7B%22country%22:%22NG%22%7D,%22complexKeywordsRestriction%22:%7B%22keyword%22:%5B%7B%22type%22:%22BROAD%22,%22value%22:%22jiji%22%7D%5D%7D%7D,%7B%22geo%22:%7B%22country%22:%22NG%22%7D,%22complexKeywordsRestriction%22:%7B%22keyword%22:%5B%7B%22type%22:%22BROAD%22,%22value%22:%22Kilimall%22%7D%5D%7D%7D,%7B%22geo%22:%7B%22country%22:%22NG%22%7D,%22complexKeywordsRestriction%22:%7B%22keyword%22:%5B%7B%22type%22:%22BROAD%22,%22value%22:%22Naivas%22%7D%5D%7D%7D,%7B%22geo%22:%7B%22country%22:%22NG%22%7D,%22complexKeywordsRestriction%22:%7B%22keyword%22:%5B%7B%22type%22:%22BROAD%22,%22value%22:%22Avechi%22%7D%5D%7D%7D%5D,%22requestOptions%22:%7B%22property%22:%22%22,%22backend%22:%22IZG%22,%22category%22:0%7D%7D&token=APP6_UEAAAAAYPqYMLtcPo0zmfbw2j2hGFjDcsvQAu2m&tz=-480', headers=headers)
async def main():token  = await get_token(keywords='Jumia,jiji,Kilimall,Naivas,Avechi'.split(','), country='NG')print(token)df = await get_keywords_trend(keywords='Jumia,jiji,Kilimall,Naivas,Avechi'.split(','), country='NG',token=token)df.to_sql('google_keyword_trend', engine_localhost, index=False, if_exists='append')print(df)if __name__=='__main__':asyncio.run(main())

可以看到同步与异步在代码上基本一致,
asyncio 和 aiohttp 可以基本实现 无痛转换 同步代码到异步代码 ,当然也有很多小坑
ps:代码运行 需要科学上网

Google 关键词趋势数据下载 同步版本 与异步版本相关推荐

  1. 在数据仓储的情况下进一步封装数据库基础操作,此版本为异步版本

    1 /// <summary> 2 /// 在数据仓储的情况下进一步封装数据库基础操作,此版本为异步版本 Created by ZhangQC 2016.08.17 3 /// </ ...

  2. SAP Fiori OData取数据的同步模式和异步模式比较

    Yesterday I was challenged by my colleague: in the CRM Fiori application "My Opportunity", ...

  3. 大数据时代,数据实时同步解决方案的思考—最全的数据同步总结

    1. 早期关系型数据库之间的数据同步 1).全量同步 比如从oracle数据库中同步一张表的数据到Mysql中,通常的做法就是 分页查询源端的表,然后通过 jdbc的batch 方式插入到目标表,这个 ...

  4. 同步电路和异步电路的区别

    摘自 何宾著<XilinxFPGA设计权威指南>P86~P91 同步电路和异步电路的区别在于电路触发是否与驱动时钟同步,从行为上讲,就是所有电路是否在同一时钟沿下同步地处理数据. 同步复位 ...

  5. 指令下载Google网盘数据遇到的无法连接问题

    记录:指令下载Google网盘数据遇到的无法连接问题 这两天下载BTS中的所使用的训练数据,原文中采用的是URL+id下载的形式 URL = "https://docs.google.com ...

  6. 使用GEE(Google Earth Engine)下载STRM30m分辨率高程数据

    简介 本文介绍如何使用GEE(Google Earth Engine)下载STRM30m分辨率高程数据并用ArcMap加载行政边界裁剪栅格图层. 准备工作 申请Google账号 注册Google Dr ...

  7. Google Earth Engine 学习7---ASTER GED 地表发射率数据下载

    Google Earth Engine 学习7-ASTER GED 地表发射率数据下载 The Advanced Spaceborne Thermal Emission and Reflection ...

  8. 【数据工具】高德地图POI数据下载工具v1.3(新增输入POI关键词+稳定性提高)

    1. 工具介绍 今天分享一个能够实现零代码获取高德地图POI数据的工具. 该工具当前版本号为v1.3,主要功能特点包括: 支持通过拉框多边形以及点选省或地级市的方式输入POI数据下载范围 支持多选输入 ...

  9. Google Earth Engine(GEE)——全球12级流域矢量数据免费下载(含数据下载链接)

    HydroBASINS代表了一系列矢量多边形图层,在全球范围内描述了子流域的边界.该产品的目标是在全球范围内无缝覆盖不同尺度(从几十平方公里到几百万平方公里)的大小一致.分层嵌套的子流域,并由一个编码 ...

最新文章

  1. vmware esxi 查看网卡、Raid卡驱动
  2. python表示复数的语句是_在python中复数如何表示
  3. 训练集 验证集_训练与验证、测试集数据分布不同的情况
  4. 关于ORA-01187: cannot read from file because it failed verification tests 的处理方法
  5. 4.2 算法之数论 185 反正切函数的应用 python
  6. 奔小康赚大钱(HDU-2255)
  7. java pdf 中文_java pdf中文乱码怎么办
  8. Java语言程序设计与数据结构(基础篇)原书第11版
  9. php网络编程socket全套
  10. 统计学名词解释 —— 3. 「简单随机样本」、「联合分布」与「联合密度」
  11. 群晖Docker部署Calibre Web打造全功能书库
  12. 大数据工程专业技术证书考试-数据分析与应用
  13. Oracle数据库开启Huge Page
  14. 贝叶斯网络之父Judea Pearl力荐、LeCun点赞,这篇长论文全面解读机器学习中的因果关系
  15. hazy的零碎知识点(防遗忘)
  16. 微信小程序 - 实现搜索界面(带热搜、搜索历史和结果页)
  17. 苦学Excel、VBA,工作效率依旧低下?你该认识这个新工具了
  18. 【读书笔记】数学的意义(纯摘录)
  19. python的OGR库获取geometry属性返回None,feature.geometry()
  20. 中等职业技术学校计算机考试,重庆市中等职业技术学校计算机教师网络培训考试题(9页)-原创力文档...

热门文章

  1. 联通对首款双3G手机补贴:286元套餐零元购机
  2. 计算机运行慢是什么原因是什么,电脑运行慢是什么原因,怎么处理
  3. 大学生作品集电子档案袋的设计与开发
  4. Spring MVC 是什么?
  5. python之MyQR库生成专属二维码
  6. minitorch系列记录——3. 自动求导
  7. java8 排序问题
  8. 基于风控角度的个人征信报告解读
  9. 宋词 婉约派和豪放派
  10. 16.0.0 VMware虚拟机下载