zoukankan      html  css  js  c++  java
  • Scrapy基础(九)————将不定长度的URL进行固定长度写入Item中


      前面讲到将每篇文章的URL写入Item,但是每个url的长度是不同的,
    可以在Item中设置一个字段怎样使得每个URL的长度相同,这就需要对每个URL进行md5
    运算,使得长度统一,再加入到设定的Item字段中
      从项目的根目录下新建一个文件夹,把所有能用到的自定义方法写入,,命名为util
    并从util下新建一个common.py文件

    写入以下:

    1 import hashlib
    2 def get_md5(url):
    3     if isinstance(url,str):                    
    4         url = url.encode("utf-8")
    5     m = hashlib.md5()
    6     m.update(url)
    7     return m.hexdigest()

    转换编码的讲解

    python3中所有字符都是Unicode编码,而md5则是对UTF-8的编码进行运算,不难理解
    计算在cpu中进行,而在内存中存储的应该是utf-8编码的,为了节省内存嘛,而在python2中则不存在这种情况,因为python3中将所有的字符都以Unicode
    进行编码,所有python3则不会出现乱码问题



    最后从jobbole.py中引入该方法,并写入Item这个字段

    from ArticalSpider.util.common import get_md5
    
    artical_item["url_object_id"] = get_md5(response.url)


    至此,所有的Item字段都添加完毕,剩下的就是写入数据库了




  • 相关阅读:
    JavaScript 循环绑定之变量污染
    JavaScript 函数初级
    JavaScript 异常处理
    JavaScript 分支结构
    定位布局
    浮动布局
    css 伪类选择器
    readlink、find-exec参数、file命令
    pwd命令和修改PS1环境变量在bash行的显示
    split、paste命令
  • 原文地址:https://www.cnblogs.com/ruoniao/p/6894027.html
Copyright © 2011-2022 走看看