【爬取红岭创投】存储在mysql数据库中的无头模式 当前速讯
目标
(资料图片仅供参考)
爬取红岭创投(https://www.my089.com/)日投资发标记录,存储在mysql数据库中,并将数据可视化以便分析.
行动
爬取数据
通过selenium+FIrefox的无头模式将需要的数据爬取出来,代码实现不在赘述,详细步骤可查看我的上一篇图文(如何利用Python爬取网易新闻),selenium3.11.0版本已经停止对phantomjs的支持,现在可以使用chrome和firefox的无头模式实现该功能. 打开无头模式:
from selenium.webdriver.firefox.options import Optionsfirefox_options=webdriver.FirefoxOptions()firefox_options.add_argument("--headless")firefox_options.add_argument("--disable-gpu")
一个疑问:
使用ubuntu的crontab定时任务运行此爬虫脚本时,如果不打开无头模式,报错如下:
selenium.comm.exception.WebDriverException:message:invalid argument :can"tkill an exited process
没能理解这个报错的原因,希望与大家一起讨论.
存储数据
数据库这次选择了mysql, 首先需要建立自己的数据库,建立相应表格,这里推荐使用 Navicat,能够将数据库操作图形化.navicat需要做一些配置,网上有大量教程,建表时需要注意类型,选择正确的类型在后续使用时会减少很多麻烦,例如:
VARCHAR和CHAR类型
varchar适用场景:
字符串列的最大长度比平均长度大很多字符串列很少被更新使用了多字节字符集存储字符串(如utf8中的中文和英文)
char适用场景:
存储长度近似的值(md5值,如密码)存储短字符串存储经常被更新的字符串列
日期类型
TIMESTAMP类型:
以yyyy-MM-dd HH:mm:ss格式显示,占用4个字节时间范围:1970-1-1 到 2038-01-19 DATATIME类型:以yyyy-MM-dd HH:mm:ss格式显示,占用8个字节时间范围:1000-1-1 00:00:00至9999-12-31 23:59:59
插入数据
db=pymysql.connect(host="localhost",user="root",password= "xxxx",db="hlct",charset="utf8") sql="INSERT INTO data_1 VALUES("" + dic["借款人"] + "","" +dic["时间"]\ + "","" + dic["借款金额"].replace(",", "")+ "","" + dic["利率"] +\ "","" + dic["期限"] + "","" + dic["还款方式"] + "");"cursor =db.cursor() #获取操作游标 cursor.execute(sql) #执行sql语句 db.commit() #提交到数据库执行 db.close()
此时,数据已经静悄悄的待在数据库中了 xd
利用echarts将数据可视化作图
最初我是在这学习的echarts基本操作 ------渲染图表 针对这次的目标,折线图是最好的展现数据方式.数据库原始数据需要做出一定处理,根据具体用途处理就好.
import pyecharts_snapshotfrom datetime import datetime ,date, timedeltafrom pyecharts import Line
def rLine(y_rate): x_axis =["00", "01", "02", "03", "04", "05", "06", "07", "08", "09", "10" ,"11","12", "13", "14", "15", "16", "17", "18", "19", "20", "21","22","23"] aver=[];max=[];min=[] for y in y_rate: aver.append(y[0]) max.append(y[1]) min.append(y[2]) line = Line("红岭创投利率曲线""("+Date+")") line.use_theme("dark") line.add("最高利率", x_axis=x_axis,y_axis=max,yaxis_max=9, yaxis_min=8,yaxis_force_interval=0.1, yaxis_formatter="%") line.render(path="/home/lsgo18/PycharmProjects/honglingchuangtou/rate.png")
x_axis--------------------------------------横轴数据y_axis--------------------------------------纵轴数据line.add()----------------------------添加数据作图yaxis_max--------------------设置纵轴刻度范围yaxis_force_interval--------------设置刻度精度line.use_theme--------------------------主题颜色line.render()------------------------------生成文件
crontab定时任务
观察了红岭创投往网站一段时间后,发现只能显示近十分钟左右的即时数据,不可能每过几分钟手动点击程序运行,伙伴们向我推荐了一个非常好用的指令-----crontab,crontab 是用来让使用者在固定时间或固定间隔执行程序之用,换句话说,也就是类似使用者的时程表,并且在后台运行,不会打扰到我们的学习和工作.
打开crontab:
sudo vim /etc/cronta
界面如下(通过vim打开)
基本格式
* * * * * command
分 时 日 月 周 命令 第1列表示分钟1~59 每分钟用*或者 */1表示 第2列表示小时1~23(0表示0点) 第3列表示日期1~31 第4列表示月份1~12 第5列标识号星期0~6(0表示星期天) 第6列要运行的命令 通常需要将python环境绝对路径,程序绝对路径写入命令,保证能正常运行,如果crontab没有运行,大概率的原因就在此,图中倒数第四行黄色部分就是运行爬虫的指令,最后/auto.log部分是输出日志,将每一次运行的结果写进日志文件,以便检查运行情况.
smtplib发送邮件
每天处理数据做出折线图后,将图片发送给团队老大,smtplib是不错的选择,结合crontab就能每天自动运行,成就感超强.
import smtplibfrom email import encodersfrom email.header import Headerfrom email.mime.text import MIMETextfrom email.mime.base import MIMEBasefrom email.mime.multipart import MIMEMultipartfrom email.utils import parseaddr, formataddr
def send(self): from_addr = "74400xxxx@qq.com" # 发件人 Email 地址和口令 password = "xxxxxxx" smtp_server = "smtp.qq.com" # SMTP 服务器地址 to_addr = "xxxx@qq.com" # 收件人地址 # 邮件头 msg = MIMEMultipart()#代表邮件本身 msg["From"] = self._format_addr("lsgo
标签:
相关推荐:
最新新闻:
- 世界热门:如何打开pdg文件?手把手教你打开PDG文件
- golang-java-serializer序列化算法解析|当前热文
- 【python】Python中最常用的数据类型|播资讯
- 【爬取红岭创投】存储在mysql数据库中的无头模式 当前速讯
- bot短期密集访问形成的流量高峰有哪些?如何解决?|天天微资讯
- 茅台推出酒瓶装冰淇淋酷似飞天茅台:66元一瓶:热资讯
- 【剑灵力士】新版本力士职业天赋加点推荐 备战不删档-焦点
- 《寓言之地》将于4月13日在Steam开启抢先体验测试
- 环球关注:外媒称网易暴雪分手 是因为网易“威胁”了科蒂克
- 躲过15次GC之后 进入老年代系统有哪些规则?|天天最资讯
- 环球快报:十二届省委第二轮巡视完成反馈
- 理想汽车雷达在无人陵园显示全是人影 官方回应_每日视点
- 央企专业化整合精准提速-世界热资讯
- 全球快看点丨《最后的生还者》PC版更新仍未解决卡顿等问题
- 环球观点:《GT赛车7》今日更新免费追加丰田豪华MPV
- MINISFORUM NAB6迷你主机上架:i7-12650H准系统低至2599元:天天热议
- 松下极简电吹风159元:天天快资讯
- 迪斯尼取缔元宇宙部门
- 资讯:Curved Lines展览征集稿件
- 固态PCIe转接卡5.9元
- 《霍格沃茨之遗》成为2023年2月北美最畅销电子游戏_世界快看点
- 天天热点评!PS+欧美服4月会免游戏公布 《麻布仔大冒险》等
- 新一代高贵“亮机卡”!RTX 4050被曝6月发布:弱得不像话 动态焦点
- 怎样去除甲醛最好_怎样去除甲醛最有效
- PC《最后生还者:第一部》4080 4K帧率测试 DLSS效果出色
- 接手机宾得望远镜889元_天天报资讯
- Steam明年不再支持Win7、8!
- 透视上市券商年报:两融业务不乏亮点 仍需多维度补短板:每日热文
- 广宇发展:2022年营收34亿元,净利6.33亿元 | 年报快讯
- 环球今日报丨TGA红灵入侵少年再出现:送给甲亢哥梅西签名球衣
- 斯坦福大学医院外科医生培训 白男占比0%引争议
- 玲娜贝儿设计师遭裁员:已经累计为迪士尼公司工作22年-焦点快报
- 《地平线:西之绝境》DLC“燃烧海岸”新截图公开-今日最新
- 世界视讯!超过90%会员表示:如果没有XGP就不会尝试在玩的游戏
- 每日热点:有学历如何去澳大利亚工作_办理澳大利亚工作签证需要什么条件
- 《塞尔达传说:王国之泪》武器融合系统《蟹蟹寻宝奇遇》早有了:别说我抄袭|世界即时
- 世界热资讯!《TLOUP1》PC版首日峰值36496人 位列PS游戏第四
- 小米13 Ultra定档:4月中旬发布 世界热议
- 股票行情快报:中色股份(000758)3月29日主力资金净卖出2901.96万元
- 引领个人PC新风尚 “定番”款笔记本电脑VAIO F14·F16在日本上市 全球快报
- 【新视野】2499 元,影驰 PCIe 5.0 高速固态硬盘发布,速度可达 10G/s
- 42岁法国女星伊娃·格林新写真 贴身长裙大秀好身材 速讯
- 环球短讯!360版ChatGPT要来了!周鸿祎:大家给起个名字
- 白客坦言:"王大锤"后 导演看中了我的朴实和普通_当前速看
- 传《巫师:天狼星》是日本背景 目标是在东方推广巫师
- 《龙之陨落》上架steam年内发售 爽快3D动作RPG 焦点短讯
- 前《寂静岭》编剧:《寂静岭2:重制版》将让玩家失望
- 《迷雾魔域:迷雾与活地下城》的众筹活动开始!
- 外媒盘点《生化危机4重制版》十大最可怕敌人:电锯狂人仅第四
- 【快播报】安桥cmx1听感(安桥cmx1)
- 金钱不是万能的辩论赛_金钱不是万能的辩论:世界球精选
- 苏宁易购预售红米Note12,线上预定送碎屏险
- Note 12 Turbo屏幕与天马深度共研,风车像素排列
- 装机神条!16GB DDR4 3200MHz内存低至185元:每日时讯
- 天天简讯:集成灶十大品牌帅丰电器持续深入终端,助力全国帅丰集成灶门店
- 全球热议:跌跌不休,内存还将继续降价,至少再打 9 折
- 2023育碧前瞻会再度归来!6.13洛杉矶现场直播
- 《王国之泪》限定NS OLED开箱:金绿符文神秘感拉满
- 活到老打到老 《师父》steam首发优惠立减10%
- 云南思茅:夯实自治“小支点” 撬动社区“大治理”:世界观热点
- 一加11木星岩版发布:纹理独一无二 聚看点
- 不会录屏?Siri可以帮你实现了:热推荐
- 世界微资讯!海信电视亮相上海张园,与《家居廊》共探家居艺术新边界
- E Ink元太科技与Sharp合作推出零功耗*电子纸数字海报|世界热点
- 年轻人为什么不喜欢买iPhone了?_今头条
- [路演]青矩技术:工程管理科技服务系提升建筑业信息化和数字化水平主要手段 拥有较大发展空间
- 热头条丨顽皮狗承诺:未来将继续支持PC玩家
- 热资讯!曝《巫师天狼星》是日本背景 为扩大IP在东方影响力
- 当前最新:DDR5价格崩了!16GB内存低至339元
- 焦点短讯!推动可信数据自由流动 浪潮数据云业务战略正式发布
- 云霄之上,是卡萨帝电热水器的创新之“胆”!-当前观点
- 环球快播:真福利还是促销手段?小米给27万小米空气净化器初代用户每人送899元优惠券
- Redmi Note 12 Turbo采用天马屏幕:素质很强
- 快看:家庭托育来了!浙江的情况怎么样?
- 专访《白荆回廊》团队:没玩过古剑不影响游戏体验_世界观点