本文在Ubuntu环境下使用Docker搭建了MySQL和Python环境,并从高德地图交通态势图接口获取交通数据保存到MYSQL数据库中。本文罗列了配置过程中的常见问题

步骤

1 进入服务器

登入阿里云

ssh  root@地址 -P

2 搭建MYSQL环境

docker安装MySQL地址:菜鸟教程-docker安装MySQL
注: 如果使用以下mysql -h localhost -u root -p命令无法连接数据库,可以使用命令mysql -h 127.0.0.1 -u root -p

3 创建数据库和数据表

  1. 创建数据库 TRAFFIC_DATA:CREATE DATABASE 数据库名;
  2. 进入数据库use TRAFFIC_DATA;
  3. 创建数据库表:
CREATE TABLE TRAFFIC_DATA (traffic_data_id INT UNSIGNED AUTO_INCREMENT,time CHAR(25),status CHAR(1) NOT NULL,info CHAR(255),infocode CHAR(20),trafficinfo_description TEXT,trafficinfo_evaluation_expedite CHAR(10),trafficinfo_evaluation_congested CHAR(10),trafficinfo_evaluation_blocked CHAR(10),trafficinfo_evaluation_unknown CHAR(10),trafficinfo_evaluation_status CHAR(1),trafficinfo_evaluation_description CHAR(255),PRIMARY KEY (traffic_data_id));CREATE TABLE ROADS(road_id INT UNSIGNED AUTO_INCREMENT,time CHAR(25),name CHAR(255),road_status CHAR(1),direction CHAR(100),angle CHAR(10),speed CHAR(10),lcodes CHAR(255),polyline TEXT,PRIMARY KEY (road_id));

注: 若表中含有text类型的属性,需要执行ALTER TABLE TRAFFIC_DATA CONVERT TO CHARACTER SET utf8mb4;命令,改变编码类型,相应的在python代码中,连接数据库时也要设置。

db = pymysql.connect(host="localhost", user="root", password="123456", database="TRAFFIC_DATA", charset="utf8mb4")

问题参考地址

4 搭建python环境

Docker安装Python:Docker安装Python

5 编写爬虫

进入用户自己的文件夹创建traffic_data.py

cd /home
cd zl(你自己创建的文件夹)
# 可以用以下命令创建文件夹
mkdir 文件夹名
# 创建文件
vim traffic_data.py

traffic_data.py

import pymysql
import requests
import json
import timedef getData(url):req = requests.get(url)data = json.loads(req.text)return data# Press the green button in the gutter to run the script.
if __name__ == '__main__':url = "https://restapi.amap.com/v3/traffic/status/rectangle?key=166e4acf928205052a530019a0d98a55&rectangle=121.370178,31.194181;121.434894,31.239471&extensions=all"db = pymysql.connect(host="localhost", user="root", password="123456", database="TRAFFIC_DATA", charset="utf8mb4")cursor = db.cursor()while True:time.sleep(1)data = getData(url)ticks = time.time()trafficSql= """INSERT INTO TRAFFIC_DATA(time, status , info, infocode, trafficinfo_description, trafficinfo_evaluation_expedite, trafficinfo_evaluation_congested, trafficinfo_evaluation_blocked, trafficinfo_evaluation_unknown, trafficinfo_evaluation_status, trafficinfo_evaluation_description)VALUES ('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s')""" % (ticks, data['status'], data['info'], data['infocode'], data['trafficinfo']['description'], data['trafficinfo']['evaluation']['expedite'], data['trafficinfo']['evaluation']['congested'], data['trafficinfo']['evaluation']['blocked'], data['trafficinfo']['evaluation']['unknown'], data['trafficinfo']['evaluation']['status'], data['trafficinfo']['evaluation']['description'])# try:cursor.execute(trafficSql)db.commit()# except:# print("INSERT TRAFFIC_DATA ERROR")count = 0for x in data['trafficinfo']['roads']:try:speed = x['speed']except:speed = -1InsertRoadSql = """INSERT INTO ROADS(time, name, road_status, direction, angle, speed, lcodes, polyline)VALUES ('%s','%s','%s','%s','%s','%s','%s','%s')""" % (ticks, x['name'], x['status'], x['direction'], x['angle'], speed, x['lcodes'], x['polyline'])# try:cursor.execute(InsertRoadSql)db.commit()# except:# print("INSERT ROADS ERROR")db.close()

6 在Ubuntu下后台持续运行Python程序

nohup python3 traffic_data.py &

参考博客地址

7 杀掉进程

[root@izuf631j25k1f0qea8yp97z zl]ps -ef  | grep python
root       824     1  0  2020 ?        00:41:33 /usr/bin/python2 -Es /usr/sbin/tuned -l -P
root     17627     1  4 21:54 ?        00:02:32 python3 traffic_data.py
root     17714 17674  0 22:57 pts/0    00:00:00 grep --color=auto python
[root@izuf631j25k1f0qea8yp97z zl]#kill -9 17627

利用python爬取数据并保存到MySQL中相关推荐

  1. Beautifulsoup爬取起点中文网 保存到mysql

    一.分析网页 目标网站:起点中文网 目标数据:类别(categoryName)小说书名(bookName) 小说链接(middleUrl)字数(wordsNums) 作者(updateTiems) 最 ...

  2. 实现多线程爬取数据并保存到mongodb

    多线程爬取二手房网页并将数据保存到mongodb的代码: import pymongo import threading import timefrom lxml import etree impor ...

  3. mysql把游标数据存入表中_利用Python爬股票数据并存入数据库Mysql

    直接上代码,小白也能爬股票......... import tushare as ts import mysql.connector import re,time #创建所有股票的表格以及插入每支股票 ...

  4. python股票数据库_利用Python爬股票数据并存入数据库Mysql

    直接上代码,小白也能爬股票......... import tushare as ts import mysql.connector import re,time #创建所有股票的表格以及插入每支股票 ...

  5. python输出数据到excel-如何使用python将传感器数据输出保存到excel中

    我目前正在使用raspberry pi并使用DHT11每秒读取温度和湿度值.我必须将这些值实时保存到数据库中.这是我每秒钟显示传感器数据的代码,我不知道如何在excel中保存数据/结果. import ...

  6. 利用Python爬取国家水稻数据中心的品种数据

    利用Python爬取国家水稻数据中心的品种数据 一.页面获取 python可以进行对网页的访问,主要用到requests,beautifulsoup4包. 首先新建一个page的py文件,用来获取页面 ...

  7. Python爬虫练习 爬取网络小说保存到txt

    原文链接:https://yetingyun.blog.csdn.net/article/details/107916769 创作不易,未经作者允许,禁止转载,更勿做其他用途,违者必究. 利用 Pyt ...

  8. python爬取小说写入txt_Python爬虫练习 爬取网络小说保存到txt

    利用python爬虫爬取网络小说保存到txt,熟悉利用python抓取文本数据的方法. 选取其中某一章,检查网页,可以找到这本小说所有章节的链接和名称. 写出xpath表达式提取出href里的内容:/ ...

  9. 爬取链家网二手房数据并保存到mongodb中

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 爬取链家网二手房数据并保存到mongodb中 文章目录 前言 一.爬虫的介绍 二.协程的介绍 三.css选择器 四.基于asyncio ...

  10. python 怎么爬桌软件数据_如何利用Python爬取并分析红岭创投的数据?

    第一步:爬取数据 通过 selenium + Firefox 的无头模式将需要的数据爬取出来,代码实现不在赘述,详细步骤可查看我的上一篇图文(如何利用Python爬取网易新闻), 由于 seleniu ...

最新文章

  1. 路由策略与策略路由的区别。
  2. 程序员是复制粘贴的工具人?还是掌握“谜底”的魔术师?
  3. mysql5.7复制集_mysql--replication复制集典型配置
  4. R语言ggplot2可视化:使用长表数据(窄表数据)( Long Data Format)可视化多个时间序列数据、在同一个可视化图像中可视化多个时间序列数据(Multiple Time Series)
  5. java thread通知_JAVA 多线程(6):等待、通知 (1)
  6. Leetcode刷题 463题:岛屿的周长(基于Java语言)
  7. Magento 模版路径
  8. 服务器系统tcpip.sys,tcpip.sys
  9. Spring整合Hibernate图文步骤
  10. 敏捷软件开发实践-Sprint Setup Meeting
  11. 每日程序C语言43-链表原地逆置
  12. 用ClusterSSH管理多台Linux服务器(2)
  13. MatCaffe问题: make matcaffe 'matlab/+caffe/private/caffe_.mexa64' failed
  14. 通过bocker把项目部署到容器后,也启动了镜像,但是浏览器报错网址连接不安全,建立安全连接失败,SSL接收到了一个超出最大准许长度的记录
  15. python程序语言二级教程_计算机二级python学习教程(2) python语言基本语法元素...
  16. 2020中国数据智能产业图谱1.0版发布丨数据猿产业全景图
  17. 平衡小车之家--风力摆开箱实录(附资料)
  18. html文件类型怎么改,更改文件类型,教您文件类型如何更改
  19. 苹果手机备忘录html转pdf,苹果手机自带的扫描仪,一键便能转成PDF文件,你不会才知道吧...
  20. 聊聊我在新加坡生活和工作的体验

热门文章

  1. 个人作业4 结对开发地铁
  2. STM32F103_study62_The punctual atoms(Clock system initialization function analysis)
  3. 区块链上的中国?2018见分晓
  4. 西门子1500更改IP地址
  5. DICOM中窗宽窗位含义
  6. vsftp创建虚拟账户
  7. oracle导出自增设置,教程方法;oracle中如何设置自增主键电脑技巧-琪琪词资源网...
  8. Cloud Native 演进可行性研究
  9. c语言choice的用法,名词choice的用法与搭配
  10. 2022-2027年中国酒店餐饮行业市场调研及未来发展趋势预测报告