tnblog
首页
视频
资源
登录
有个性,不需要签名
排名
17
文章
40
粉丝
16
评论
21
Linq or Sql 取树末级节点
剑轩 : 这个方法是真的帅!
Python实例 2-12306抢票(二) 下单
18335584353 : 哥。我也是总返回url":"/leftTicket/init",&quot...
Visual Studio小技巧
剑轩 : [斜眼笑][斜眼笑]开会完了认真看了一遍
C#网络流读取(图片)
风清月 : 把一个图片放到字节数组里边[发呆](`・ω・´)
C#与Java二进制编码转换,补码
风清月 : 我勒个擦.....有时间这种问题很坑很难发现哇o(╥﹏╥)o
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术

Python实例 1-日志抓取处理 补错(附日志小技巧)

6618人阅读 2018/12/21 15:59 总访问:289260 评论:0 收藏:0 手机
分类: Python



有时候数据出了问题,可以从日志中恢复数据(如果你没记日志..没备份..→_→..)


一、日志展示

            介绍个平常自己用的小方法,如果你的日志没有单独的模块或页面管理的

            日志记录在文件中,可以在IIS中新建一个站点 指向你的日志文件,站点开启目录浏览

            

            

            然后就可以

                      

            

  就可以比较方便看 查找之类..


二、抓取数据


            然后就是抓取的问题了,用python把网页源码抓取下来,根据需求拿数据 当然如果你能直接拿到日志文件 用IO读取文件的方式(你本地的情况下,一般生产环境的日志你应该访问不到)更容易

            我要取日志中到货更新的时间:

            

            

 

代码:

  1. import json
  2. import urllib.request
  3. import re
  4. import threading
  5. import pymysql
  6. def GetContent(url):
  7.     headers = {
  8.     "User-Agent""Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36"
  9.     }
  10.     req = urllib.request.Request(url, headers=headers)
  11.     data = urllib.request.urlopen(req).read()
  12.     return data
  13. conn = pymysql.connect('数据库IP地址''name''password''DB_NAME'
  14. excuter = conn.cursor()
  15. #太多可以使用多线程抓取
  16. for i in range(18):
  17.     i+=1
  18.     if(i<10):
  19.         url='http://localhost:8300/OrderAPI/LOG_2018-12-0'+str(i)+'.txt'
  20.     else:
  21.         url='http://localhost:8300/OrderAPI/LOG_2018-12-'+str(i)+'.txt'
  22.     data = GetContent(url).decode('utf-8')
  23.     content = re.findall(re.compile('到货状态更新成功。   一(.*?)\r\n详细:\r\nid:(.*?)。OrderCode:(.*?)\r\n',re.S), data)#.*? "到货状态更新成功。   一(.*?)\r
  24.     for item in content:
  25.         sql = "update t_order set Time1='"+str(item[0])+"' where Id="+str(item[1])
  26.         print(sql)
  27.         excuter.execute(sql)
  28.         conn.commit()
  29. print('Tosql Succ!!!')
  30. excuter.close()
  31. conn.close()

            需要注意 需要下载一个连接操作mysql的库 :pip install PyMySQL

            

            结果:

            

  数据拿回来了,想怎么操作都行,数据太多可以用多线程来抓取

     python的代码贴过来就乱了 有点难受

            


具体情况 根据你的需要来,怎么抓取怎么操作,这篇文章只是提供一个思路





欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739

评价

Python学习 1-安装

Ptyhon非常简单易用的面向对象的脚本语言,跨平台 入门简单python分2个版本 Python2、Python3。Python 2.7 将于 2020 年结...

Python学习 2-基本语法

基础:python脚本语言,不需要编译(像C#、Java、PHP、C++需要编译成机器可识别的语言), 而直接由解释器解释,很多地方类似...

Python学习 3-爬虫基本介绍 及简单实例

爬虫爬虫就是一只猪,蜘蛛。。 网络蜘蛛。互联网是一个网由各个网站组成。无数的蜘蛛就在网上到处爬,根据网址从一个网站爬...

Python实例 2-12306抢票(一) 登陆

开坑年关将近,终于对12306下手了,,平安夜撸代码,攻克了12306的登陆 2018-12-24 22:16:00没错 这篇博客就写从零开始的异...

Python安装pip以及使用pip安装requests等模块

pip很简单的介绍pip 是一个现代的,通用的 Python 包管理工具。提供了对 Python 包的查找、下载、安装、卸载的功能。如果想...

Python数据集合区别

列表(list):可读写,值可以重复,有序排列,初始化语法:[&#39;tom&#39;,‘jerry’]元组(tuple):只读,值可以重复,...

Python实例 2-12306抢票(二) 下单

第二篇 刷票与下单1.记住登陆上一篇写了登陆:http://www.tnblog.net/cz/article/details/162 为了方便调试 不让每次登陆都...

使用VS Code开发Python

Vs Code开发Python可以很好的支持代码调试、智能提示、代码对齐等1:下载VS Codehttps://code.visualstudio.com/Downloadvs ...

Python变量与命名

Python使用等号 ( = ) 作为赋值运算符,例如a = 66 就是一条赋值语句,作用就是将66赋值给变量a。Python是弱类型语言,弱类...

Python关键字和内置函数

Python中包含了如下所示的关键字:上面这些关键字都不能作为变量名。另外,Python 3还提供了如下表所示的内置函数:也不能...

Python基础输入和输出

Python使用print()函数向打印程序输出,采用input()函数接收程序输入。print()函数的语法格式如下:print(value,...,sep=&#...

Python基本数据类型

Python包含两大类基本数据类型:数值类型、字符串类型,三大类组合数据类型:集合类型、序列类型和字典类型.数值类型:整型...

Python中通过fake_useragent生成随机UserAgent

fake_useragent第三方库,来实现随机请求头的设置;GitHub ---&gt; https://github.com/hellysmile/fake-useragent安...

Python 升级pip

一条命令即可: python -m pip install --upgrade pip 安装成功后,一般是在python目录下面的Scripts里边的

Python html编码解码

使用方法:html.escape(s)与html.unescape即可 import html s=&quot;&lt;div&gt;jsdlfjsl&lt;/div&gt;&quot; #html编...