发现更大的SEO世界
 找回密码
 注册
搜索
»首页»SEO培训 SEO论坛 SEO交流 帖子
发新帖
AIR_seoqx,希望在SEO前线的乐土中,真正享受SEO的滋润。    

[已通过]如何用Python实现处理404页面

       在解决一个问题时,鄙人更喜欢先从逻辑思路开始,把问题结构化,细分成每个小节,最后综合处理。这些思维方式在技术身上尤为重要(个人观点)。由于对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()

发表于 2014-5-27 12:02:33
回复 收藏
fred,请到个人资料页面设置个人签名    [ 版主 ]

你这是提取出日志里所有的404的日志吗?貌似一句shell就可以搞定了。
发表于 2014-5-27 13:25:07
回复 收藏
AIR_seoqx,希望在SEO前线的乐土中,真正享受SEO的滋润。    

fred 发表于 2014-5-27 13:25
你这是提取出日志里所有的404的日志吗?貌似一句shell就可以搞定了。

shell在这方面确实有优势。先学的Python,后来学了一点shell命令。多谢!
 楼主| 发表于 2014-5-27 13:48:38
回复 收藏
莫山,改我论坛密码的没有小JJ,哼!!!    

本帖最后由 莫山 于 2014-5-27 14:56 编辑

这个用python太麻烦了,shell直接一句搞定
awk  '$x~ /404/{print $y}'  |sort|uniq >404.txt
x 状态码所在段
y URL所在段
发表于 2014-5-27 14:42:21
回复 收藏
AIR_seoqx,希望在SEO前线的乐土中,真正享受SEO的滋润。    

莫山 发表于 2014-5-27 14:42
这个用python太麻烦了,shell直接一句搞定
awk  '$x~ /404/{print $y}'  |sort|uniq >404.txt
x 状态码所 ...

恩 shell在这方面有很大优势。 后来学了shell总结出来的 awk '$10=404{print $10 $4}' 5.25.log|sort|uniq -c|sort -nr 但是在写Python,所以不能宣兵夺主哈
 楼主| 发表于 2014-5-27 15:59:00
回复 收藏
iiccboy,请到个人资料页面设置个人签名    

我是看不懂 不过我就是来看贴的
发表于 2014-5-27 16:07:13
回复 收藏
姜姜,个人比较闲,学习python中    

去重可以在程序中直接搞定,不用excel
发表于 2014-5-28 15:24:55
回复 收藏
快速回复 返回顶部 返回列表