在解决一个问题时,鄙人更喜欢先从逻辑思路开始,把问题结构化,细分成每个小节,最后综合处理。这些思维方式在技术身上尤为重要(个人观点)。由于对Python不甚精通,所以方法比较笨拙!
实现处理404页面逻辑思路
1.先从服务器日志中拆分出404状态码
2.再从404状态码日志中提取URL
3.含有404的URl去重
4.生成文档格式
根据以上思路细化具体技术实现
1 先通过光年日志拆分工具,拆分出agent-Baiduspider,status=404等拆分条件。
(具体方法略)
2 通过拆分的日志中,就可以直接用Python提取URL,代码丑陋,各位多多见谅
#coding=utf-8
import re,os
cont=open(r'c:\\python27\baidu.log','r')
m=cont.read()
com='http://www.yiwugou.com/.*?\.html'
pyre=re.compile(com)
for line in m:
html=re.findall(pyre,m)
filexcel=open('40492.csv','a+')
for i in html:
filexcel.write(i+'\n')
filexcel.close()
3 完成以上操作,可以打开Excel去重
(具体方法略)
4 最后,就可以生成自己的文档格式(txt,xml)
注:改代码是二次更改,非本人编写。xml地图的格式不完整,可以根据自己的实际需求来增删。
#conding=utf-8
import os,sys
id_= 1
f = open('c%s.xml' % id_, 'w')
for i, line in enumerate(open(r'C:\\4041.csv')):
if i % 50000==0:
print i
f.write('<?xml version="1.0" encoding="UTF-8"?>\n<urlset>\n')
f.write(''' <url>\n <loc>%s</loc>\n </url>\n''' % line.rstrip())
if i % 50000==49999:
f.write('</urlset>')
f.close()
id_ += 1
f = open('c%s.xml' % id_, 'w')
f.write('</urlset>')
f.close()
|