码迷,mamicode.com
首页 > Web开发 > 详细

Scrapy基础————将不定长度的URL进行固定长度写入Item中

时间:2017-05-23 14:58:27      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:span   python   命名   数据库   back   object_id   from   项目   编码   


  前面讲到将每篇文章的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字段都添加完毕,剩下的就是写入数据库了




Scrapy基础————将不定长度的URL进行固定长度写入Item中

标签:span   python   命名   数据库   back   object_id   from   项目   编码   

原文地址:http://www.cnblogs.com/ruoniao/p/6894027.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!