===========================================
- 获取中国境内指定行政区域内(最小可精确到街道)的指定关键词的所有兴趣点 例如可以获取一个城市内所有的便利店、商场、超市、咖啡店等兴趣点信息
- 组合批量获取中国境内多个行政区域内多个关键词的所有兴趣点信息
- 将所有采集到兴趣点数据存储到指定的
mysql
数据库中
-
1 安装
Twisted
库,需要离线安装可以到https://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted下载相应python版本的Twisted 的离线文件
然后使用
pip install Twisted_xxxx版本.whl
安装 -
2 安装pywin32
注意:如果使用virtualenv 环境,请参考此博客https://blog.csdn.net/qingche456/article/details/54587898
- 3 使用
pip install requirements.txt
安装依赖库
注意:前提是必须先安装
Twisted
库,不然安装时会报错
lxml==4.2.5
numpy==1.15.4
pandas==0.23.4
PyMySQL==0.9.2
pypinyin==0.33.2
requests==2.20.0
Scrapy==1.5.1
Shapely==1.6.4.post2
SQLAlchemy==1.2.12
yagmail==0.11.214
设置文件位置: BaiduMapPoiSpider\BaiduMapWebApiSpier\settings.py
默认已经设置(但有次数限制2000/天),这个key主要用来调用行政区划边界api,2000/天其实是足够了的。 每个行政区域只调用一次。除非你一下子要获取2000个行政区域的兴趣点数据。
高德地图开发平台:
今天(2020年11月2日)收到高德地图的短信通知,我的这个账号被封了,以后就不提供这个api_key了,各位自己申请一个吧。
申请链接: https://lbs.amap.com/
GaoDeMap_API_KEY = '182ad5d7061ed1e421091c22089c3677'
申请地址:百度地图开放平台
ak_list = ['iMplFNfYyAf4e7EleegtObtcOZdliriG']
注意:这里是以个列表,你可以放置多个ak,程序会随机调用,调用前会检测ak是否有效,若无效自动使用列表中的下一个ak,直至使用完毕
region_name_list = ["成都市", "德阳市", '成都市武侯区']
query_word_list = ['超市', '咖啡馆']
# 设置mysql 信息
MYSQL_HOST = 'localhost' # mysql ip
MYSQL_USER = 'root' # mysql用户名
MYSQL_PASSWORD = 'test123456' # mysql用户名密码
MYSQL_DBNAME = 'test' # mysql 中数据库名,必须提前创建好
MYSQL_TableName = '' # 将要写入的数据库中的表名,若不存在会自动创建,若为空,则自动以"指定的区域名_bd_map_pois"命名
def send_email_163(subject, body, file):
# 配置163发送邮件的主体账户选项
yag = yagmail.SMTP(user='[email protected]', password='', host='smtp.163.com', port='465')
body = body
# 配置接收邮件的邮箱
yag.send(to=['[email protected]'], subject=subject, contents=[body, r'%s' % file])
直接运行根目录下的run.py
即可:python run.py
如果在使用过程中遇到无法解决的问题,你可以通过关注我的个人公众号找到我。
另外,也可以通过提交issue的方式提交问题。