• Python Scrapy抓取数据中文存utf8乱码问题

    继 http://blog.wdoc.info/note/79.html (在回调函数中加载新页面XPath)之后

    最近出现了 网页GB2312编码,无法正常转换为utf8存入数据库的问题

     网上大肆搜寻一番,说的编码转换一一试过,似乎问题不太好解决

    于是直接在命令行下 使用python    >>>scrapy shell  http://my.test.url

     加载页面之后输出类容 来看了下 (截取了一部分)测试片段 如下

    >>>tt = "\xe6\x98\xaf\xe4\xb8\x80\xe5\xae\xb6\xe4\xb8\x93\xe4\xb8\x9a\xe9\x94\x80\xe5\x94\xae\xe3\x80\x8a\xe9\x93\x85\xe9\x85\xb8\xe5\x85\x8d\xe7\xbb\xb4\xe6\x8a\xa4\xe8\x93\x84\xe7\x94\xb5\xe6\xb1\xa0\xe3\x80\x8b\xe3\x80\x81\xe3\x80\x8aUPS\xe4\xb8\x93\xe7\x94\xa8\xe8\x93\x84\xe7\x94\xb5\xe6\xb1\xa0\xe3\x80\x8b\xe3\x80\x81\xe3\x80\x8a\xe7\x9b\xb4\xe6\xb5\x81\xe5\xb1\x8f\xe4\xb8\x93\xe7\x94\xa8\xe8\x93\x84\xe7\x94\xb5\xe6\xb1\xa0\xe3\x80\x8b\xe3\x80\x81\xe3\x80\x8aEPS\xe4\xb8\x93\xe7\x94\xa8\xe8\x93\x84\xe7\x94\xb5\xe6\xb1\xa0\xe3\x80\x8b\xe3\x80\x81\xe3\x80\x8a\xe5\xa4\xaa\xe9\x98\xb3\xe8\x83\xbd\xe4\xb8\x93\xe7\x94\xa8\xe8\x93\x84\xe7\x94\xb5\xe6\xb1\xa0\xe3\x80\x8b\xe3\x80\x81\xe3\x80\x8a\xe9\x93\x85\xe9\x85\xb8\xe5\x85\x8d\xe7\xbb\xb4\xe6\x8a\xa4\xe8\x93\x84\xe7\x94\xb5\xe6\xb1\xa0\xe3\x80\x8b\xe3\x80\x81\xe3\x80\x8a\xe8\x83\xb6\xe4\xbd\x93\xe8\x93\x84\xe7\x94\xb5\xe6\xb1\xa0\xe3\x80\x8b\xef\xbc\x8c\xe5\x8c\x85\xe6\x8b\xac\xe5\xae\x89\xe8\xa3\x85\xe3\x80\x81\xe8\xb0\x83\xe8\xaf\x95\xe5\x8f\x8a\xe7\xbb\xb4\xe4\xbf\xae..."

    >>>print tt  

    直接乱码

    >>>print tt.decode('utf8','ignore')

    显示正常中文(ignore 在解码过程中直接忽略异常编码)

    但是在Scrapy中

    temp = urllib2.urlopen(newurl) #请求
    temp = temp.read() #读数据

    temp = temp.decode('utf8','ignore') # 这样会提示找不到默认编码...
    newresponse = HtmlResponse(newurl)
    newresponse._set_body(temp)

    于是最终解决方案

    temp = temp.decode('utf8','ignore').encode('gbk') 

     

    #过程比较潦草,仅做记录  欢迎指正

    #如果对python 如何使用Scrapy加载网页不熟悉的朋友,请先参阅 http://blog.vsfor.com/note/79.html

     

  • Python操作文件及文件目录常用方法(他山之石)

    注意:Windows环境下操作的过程中需要注意目录的分隔符为 \ 所以通常需要对路径分隔符做转义处理

    源自: http://hi.baidu.com/pythond/item/c6bc99491cfb0be9a5c066a8

    python 操作windows下的目录


    python操作目录、文件相关的函数,在os模块中,当然或许也有别的模块提供了更方便的函数
    以下列出的所有函数均亲自测试过!

    1、os.getcwd()         os.chdir(dir)      #获取当前目录 ,改变当前目录为dir

    2、os.listdir(dir)        #获取目录内容,其结果为list类型

    3、os.mkdir(dir)        #创建目录

    4、os.rmdir(dir)         # 删除空目录,如果目录中有内容,则出错

    5、os.path.isdir(dir)                    #判断是否为目录

    6、os.path.isfile(file)                   #判断是否为文件

    7、os.path.isabs(path)               #判断是否为绝对路径

    8、os.path.abspath(path)           #取得绝对路径

    9、os.path.dirname(path)           #取得父目录

    10、os.path.exists(path)            #判断目录或文件是否存在

    11、os.path.getsize(path)          #取得文件大小

    12、os.path.getctime(path)   getmtime(path) getatime()      #取得文件的创建、修改、最后存储的时间

    #不过取得是浮点数,需要用time模块中的time.ctime(float) 或time.localtime(float)转换成可识别的格式

    13、os.path.split(path)             #分割路径,结果为元组,如(‘c:\\windows','system32')

    14、os.path.splitext(path)        #分割扩展名,结果如 (‘c:\\windows\\system32\\cmd','.exe')

    15、os.rename(file1,file2)         #将file1文件更名为file2文件

    16、os.remove(file)                  #删除file文件

    17、os.walk(path,topdown) #目录遍历

    一下是调用os.walk的例子,遍历指定的目录

    def walk_dir(dir, topdown=True):
        for root, dirs, files in os.walk(dir, topdown):
            for name in files:
                print(os.path.join(root, name))
            for name in dirs:
                print(os.path.join(root, name))


    glob模块

    glob.glob("*.py")                    #返回当前目录下所有以.py为后缀的目录或文件


    shutil模块

    shutil.copyfile(src,dst)             #拷贝文件

    shutil.copystat(src,dst)           #拷贝文件,连同文件的stat一起拷贝

    shutil.copytree(src,dst)           #拷贝目录,拷贝之前dst必须不存在

  • 如何在CMD-DOS窗口中显示UTF-8中文字符(他山之石)

    原文转自(http://blog.sina.com.cn/s/blog_794b1d96010136yy.html)

    在中文Windows系统中,如果一个文本文件是UTF-8编码的,那么在CMD.exe命令行窗口(所谓的DOS窗口)中不能正确显示文件中的内容。在默认情况下,命令行窗口中使用的代码页是中文或者美国的,即编码是中文字符集或者西文字符集。

    如果想正确显示UTF-8字符,可以按照以下步骤操作:

    1、打开CMD.exe命令行窗口

    2、通过 chcp命令改变代码页,UTF-8的代码页为65001

    chcp 65001

    执行该操作后,代码页就被变成UTF-8了。但是,在窗口中仍旧不能正确显示UTF-8字符。

    3、修改窗口属性,改变字体

    在命令行标题栏上点击右键,选择"属性"->"字体",将字体修改为True Type字体"Lucida Console",然后点击确定将属性应用到当前窗口。

    这时使用type命令就可以显示UTF-8文本文件的内容了:

    type filename.txt

    4、通过以上操作并不能完全解决问题,因为显示出来的内容有可能不完全。可以先最小化,然后最大化命令行窗口,文件的内容就完整的显示出来了。

    //补充

    dos指令:

    chcp 65001 就是换成UTF-8代码页

    chcp 936 可以换回默认的GBK

    chcp 437 是美国英语

    CMD使用命令chcp:

    功能: 
    显示或设置活动代码页编号

      CHCP [nnn]
      nnn 指定代码页编号。
      不加参数键入 CHCP 显示活动代码页编号。
      nnn指定一已有的系统字符集,该字符集在CONFIG.SYS文件中由COUNTRY命令定义。
      在DOS下可以通过mode命令来设置代码页。
      选定代码页: MODE CON[:] CP SELECT=yyy
      代码页状态: MODE CON[:] CP [/STATUS]
      按Windows+R组合键,然后输入cmd或者command打开命令提示符。
      比如输入:mode con cp select=936,则表示显示简体中文。如果输入mode con cp select=437,则表示显示MS-DOS 美国英语,而中文显示将会是?。
      MS-DOS为以下国家和语言提供字符集:
      代码页 描述
      1258 越南语
      1257 波罗的语
      1256 阿拉伯语
      1255 希伯来语
      1254 土耳其语
      1253 希腊语
      1252 拉丁 1 字符 (ANSI)
      1251 西里尔语
      1250 中欧语言
      950 繁体中文
      949 朝鲜语
      936 简体中文(默认)
      932 日语
      874 泰国语
      850 多语种 (MS-DOS Latin1)
      437 MS-DOS 美国英语

  • css样式中文字体(font-family)的英文名称(它山之石)

    Mac OS的一些:
    华文细黑:STHeiti Light [STXihei]  华文黑体:STHeiti  华文楷体:STKaiti  华文宋体:STSong  华文仿宋:STFangsong  儷黑 Pro:LiHei Pro Medium  儷宋 Pro:LiSong Pro Light  標楷體:BiauKai  蘋果儷中黑:Apple LiGothic Medium  蘋果儷細宋:Apple LiSung Light 

    Windows的一些: 
    新細明體:PMingLiU  細明體:MingLiU  標楷體:DFKai-SB  黑体:SimHei  宋体:SimSun  新宋体:NSimSun  仿宋:FangSong  楷体:KaiTi  仿宋_GB2312:FangSong_GB2312  楷体_GB2312:KaiTi_GB2312  微軟正黑體:Microsoft JhengHei  微软雅黑体:Microsoft YaHei 
      
    装Office会生出来的一些: 
    隶书:LiSu  幼圆:YouYuan  华文细黑:STXihei  华文楷体:STKaiti  华文宋体:STSong  华文中宋:STZhongsong  华文仿宋:STFangsong 方正舒体:FZShuTi  方正姚体:FZYaoti  华文彩云:STCaiyun  华文琥珀:STHupo  华文隶书:STLiti  华文行楷:STXingkai  华文新魏:STXinwei 

    Windows 中的中文字体。
     在默认情况下,也就是未自行安装新字体或者 Office 等文字处理软件的情况下,Windows 默认提供下列字体:
    Windows 95/98/98SE 宋体、黑体、楷体_GB2312、仿宋_GB2312 Windows XP/2000/2003/ME/NT 宋体/新宋体、黑体、楷体_GB2312、仿宋_GB2312 (Windows XP SP3 宋体-PUA)
    Windows Vista/7/2008 宋体/新宋体、黑体、楷体、仿宋、微软雅黑、SimSun-ExtB 
    那么每种字体能显示那些汉字呢?
    Vista 之前的 Windows 中宋体/新宋体、黑体支持 GBK 1.0 字符集, 楷体_GB2312、仿宋_GB2312 支持 GB2312-80 字符集。 (注:Windows 3.X 只能支持 GB2312-80 字符集)
     
    Vista 及之后的 Windows 中宋体/新宋体、黑体、楷体、仿宋、微软雅黑支持 GB18030-2000 字符集,
    SimSun-ExtB 只支持 GB18030-2005 字符集扩展 B 部分。 
    下面对字符集进行简单的介绍:
    GB2312-80 < GBK 1.0 < GB18030-2000 < GB18030-2005
    GB2312-80 中的字符数量最少,GB18030-2005 字符数量最多。 GB2312-80 是最早的版本,字符数比较少;
    GBK 1.0 中的汉字大致与 Unicode 1.1 中的汉字数量相同;
    GB18030-2000 中的汉字大致与 Unicode 3.0 中的汉字数量相同,主要增加了扩展 A 部分; GB18030-2005 中的汉字大致与 Unicode 4.1 中的汉字数量相同,主要增加了扩展 B 部分; 由于 Unicode 5.2 的发布,估计 GB18030 会在近期发布新版本,增加扩展 C 部分。 需要说明的是在 GB18030 中扩展 B 部分并不是强制标准。
    如果想查看 GB18030 的标准文本,请访问 http://www.gb168.cn 中的强标阅读。  如果想了解 Unicode 的内容,请访问 http://www.unicode.org。 
    现在纠正网上普遍的一个错误:
    GB18030-2000 和 GB18030-2005 都不支持单字节的欧元符号  
    与简体中文有关的代吗页如下:
    936 gb2312 简体中文(GB2312)----其实是GBK
    10008 x-mac-chinesesimp 简体中文(Mac)

  • HTML特殊字符收集

    HTML特殊字符编码大全:往网页中输入特殊字符,需在html代码中加入以&开头的字母组合或以&#开头的数字。下面就是以字母或数字表示的特殊符号大全。












    ´ &acute; © &copy; > &gt; µ &micro; ® &reg;
    & &amp; ° &deg; ¡ &iexcl;   &nbsp; » &raquo;
    ¦ &brvbar; ÷ &divide; ¿ &iquest; ¬ &not; § &sect;
    &bull; ½ &frac12; « &laquo; &para; ¨ &uml;
    ¸ &cedil; ¼ &frac14; < &lt; ± &plusmn; × &times;
    ¢ &cent; ¾ &frac34; ¯ &macr; " &quot; &trade;

    &euro; £ &pound; ¥ &yen;        

    &bdquo; &hellip; · &middot; &rsaquo; ª &ordf;
    ˆ &circ; &ldquo; &mdash; &rsquo; º &ordm;
    &dagger; &lsaquo; &ndash; &sbquo; &rdquo;
    &Dagger; &lsquo; &permil; ­ &shy; ˜ &tilde;

    &asymp; &frasl; &larr; &part; &spades;
    &cap; &ge; &le; &PRime; &sum;
    &clubs; &harr; &loz; &prime; &uarr;
    &darr; &hearts; &minus; &prod; &zwj;
    &diams; &infin; &ne; &radic; &zwnj;
    &equiv; &int; &oline; &rarr;


    α &alpha; η &eta; μ &mu; π &pi; θ &theta;
    β &beta; γ &gamma; ν &nu; ψ &psi; υ &upsilon;
    χ &chi; ι &iota; ω &omega; ρ &rho; ξ &xi;
    δ &delta; κ &kappa; ο &omicron; σ &sigma; ζ &zeta;
    ε &epsilon; λ &lambda; φ &phi; τ &tau;


    Α &Alpha; Η &Eta; Μ &Mu; Π &Pi; Θ &Theta;
    Β &Beta; Γ &Gamma; Ν &Nu; Ψ &Psi; Υ &Upsilon;
    Χ &Chi; Ι &Iota; Ω &Omega; Ρ &Rho; Ξ &Xi;
    Δ &Delta; Κ &Kappa; Ο &Omicron; Σ &Sigma; Ζ &Zeta;
    Ε &Epsilon; Λ &Lambda; Φ &Phi; Τ &Tau; ς &sigmaf;

    ■ HTML常用特殊字符:只要你认识了 HTML 标记,你便会知道特殊字符的用处。

    HTML 原代码 显示结果 描述
    &lt; < 小于号或显示标记
    &gt; > 大于号或显示标记
    &amp; & 可用于显示其它特殊字符
    &quot; " 引号
    &reg; ® 已注册
    &copy; © 版权
    &trade; 商标
    &ensp; 半个空白位
    &emsp; 一个空白位
    &nbsp;   不断行的空白

    ■特殊符号:·⊙①?◎Θ⊙●○¤㊣㈱@の■□★☆◆◇◣◢ ◤◥▲△▼▽⊿◢
    ▂ ▃ ▄ ▅ ▆ ▇ █ ▉ ▊▋▌▍▎▏■ ▓ 回 □ 〓≡
    ↑↓→←↘↙♀♂┇┅‖$ @ * & # ※ 卍 卐 ∞Ψ §∮ № ⌒ *
    ░ ▒ ▣ ▤ ▥ ▦ ▧ ▨ ▩ ▪ ▫ ▬ ◆ ◇ ◈ ◎ ● ◐ ◑ ☉ ☎ ☏ ☜ ☞ ☺ ☻ ☼ ♠ ♡ ♢ ♣ ♤ ♥ ♦ ♧ ♨ ♩ ♪ ♫ ♬ ♭♯

    ■标点符号: .。,、;:?!ˉˇ¨`~ 々~‖∶"'`|·… — ~ - 〃
    ‘’“”〝〞〔〕〈〉《》「」『』〖〗【】()[]{}︻︼﹄﹃

    ■数学符号: +-×÷﹢﹣±/= ∥∠ ≌ ∽ ≦ ≧ ≒﹤﹥ ≈ ≡ ≠ = ≤ ≥ < > ≮ ≯
    ∷ ∶ ∫ ∮ ∝ ∞ ∧ ∨ ∑ ∏ ∪ ∩ ∈ ∵ ∴ ⊥ ∥ ∠ ⌒ ⊙ √∟⊿ ㏒ ㏑ % ‰

    ■单位符号:㎎ ㎏ ㎜ ㎝ ㎞ ㎡ ㏄ ㏎ ㏑ ㏒ ㏕ ℡ % ‰ ℃ ℉ °′″$ £ ¥ ¢ ♂ ♀℅

    ■数字序号:① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ ⑩ ㈠ ㈡ ㈢ ㈣ ㈤ ㈥ ㈦ ㈧ ㈨ ㈩ №
    ⑴ ⑵ ⑶ ⑷ ⑸ ⑹ ⑺ ⑻ ⑼ ⑽ ⑾ ⑿ ⒀ ⒁ ⒂ ⒃ ⒄ ⒅ ⒆ ⒇
    ⒈ ⒉ ⒊ ⒋ ⒌ ⒍ ⒎ ⒏ ⒐ ⒑ ⒒ ⒓ ⒔ ⒕ ⒖ ⒗ ⒘ ⒙ ⒚ ⒛
    Ⅰ Ⅱ Ⅲ Ⅳ Ⅴ Ⅵ Ⅶ Ⅷ Ⅸ Ⅹ Ⅺ Ⅻ ⅰ ⅱ ⅲ ⅳ ⅴ ⅵ ⅶ ⅷ ⅸ ⅹ

    ■希腊字母:Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω
              α β γ δ ε ζ ν ξ ο π ρ σ η θ ι κ λ μ τ υ φ χ ψ ω

    ■俄语字符:А Б В Г Д Е Ё Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я
              а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я

    ■汉语拼音:ā á ǎ à ō ó ǒ ò ē é ě è ī í ǐ ì ū ú ǔ ù ǖ ǘ ǚ ǜ ü ê ɑ � ń ň � ɡ
    ㄅㄆㄇㄈㄉㄊㄋㄌㄍㄎㄏㄐㄑㄒㄓㄔㄕㄖㄗㄘㄙㄚㄛㄜㄝㄞㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨㄩ

    ■中文字符:
    偏旁部首:横起:夬丅乛   竖起:丄丩乚   撇起:夊亅亇厃々   捺起:丂
    零 壹 贰 叁 肆 伍 陆 柒 捌 玖 拾 佰 仟 万 亿 吉 太 拍 艾 分 厘 毫 微
    卍 卐 卄 巜 弍 弎 弐 朤 氺 曱 甴 囍 兀 々 〆 の ぁ 〡 〢 〣 〤 〥 〦 〧 〨 〩

    ■日语:ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん

    ■注音码:ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ

    ■绘表符号:─━│┃┄┅┆┇┈┉┊┋┌┍┎┏┐┑┒┓└┕┖┗┘┙┚┛
    ├┝┞┟┠┡┢┣┤┥┦┧┨┩┪┫┬┭┮┯┰┱┲┳┴┵┶┷┸┹┺┻
    ┼┽┾┿╀╁╂╃╄╅╆╇╈╉╊╋
    ═║╒╓╔╕╖╗╘╙╚╛╜╝╞╟╠╡╢╣╤╥╦╧╨╩╪╫╬╳
    ╔ ╗╝╚ ╬ ═ ╓ ╩ ┠ ┨┯ ┷┏ ┓┗ ┛┳⊥﹃﹄┌╭╮╯╰

    表情符号:*^_^* ^*^ ^-^ ^_^ ^︵^

    ■经典字符全收集:、。·ˉˇ¨〃々—~‖…‘’“”〔〕 〈 〉《》「」『』〖〗【】±+-×÷∧∨∑∏∪∩∈√⊥∥∠⌒⊙∫∮≡≌≈∽∝≠≮≯≤≥∞∶ ∵∴∷♂♀°′″℃$¤¢£‰§№☆★〇○●◎◇◆ 回□■△▽⊿▲▼◣◤◢◥▁▂▃▄▅▆▇█▉▊▋▌▍▎▏▓※→←↑↓↖↗↘↙〓 ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ①②③④⑤⑥⑦⑧⑨⑩⒈⒉⒊⒋ ⒌⒍⒎⒏⒐⒑⒒⒓⒔⒕⒖⒗⒘⒙⒚⒛⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂⒃⒄⒅⒆⒇㈠㈡㈢㈣㈤㈥㈦㈧㈨㈩ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫ!"

click
©2010-2024 Jeen All Rights Reserved.Powered by emlog 京ICP备15058100号-1