关于Python语法、正则表达式的学习

原创 2016年06月01日 15:54:24

一、Python基础语法

import 文件名   导入文件
from tutorial.items.item import ShopItem   调用tutorial.items.item文件 的ShopItem类

类的创建
class 类名 (继承类):  基础object
for namekey, namevalue in dic.iteritems():  遍历字典发
for dec in description:                     遍历数组
if a>10 or a<0:   或
if a>0 and b>0:   与

类型转化  eg:  str(1)  int('1')   
字符串拼接 eg:  str1 = 'aaa' 
              str2 = 'bbb'
              str3 = str1+str2+'ccc'

类的初始化:
    def __init__(self, 参数1,参数2,........, *args, **kwargs):
        super(类名, self).__init__(*args, **kwargs)
   
    初始化方法:type若没有被赋值,默认为0 
    用函数时,缺省参数的值如果没有传入,则被认为是默认值
    def __init__(self, type='0', url='', *args, **kwargs):
        super(ZapposSpiders_two, self).__init__(*args, **kwargs)

二、正则表达式:
import re

re.search
eg:匹配url字符串 是否包含http://zappos.com/men 
      if re.search(r"^(http://www.zappos.com/men)", url, re.M | re.I):
eg:
response 一块内容:
var colorNames = {
'3':"Black",
'105':"Black Stretch",
'301901':"Black Stretch 1"
};
比如匹配获取colorNames 的内容值
从一个从response中正则匹配 出colorName内容 已var colorName = 开始 到已经;结尾   *若干   若没有*表示只取到var colorName = 后面一个字符
colorNamesString = re.search(r'(?<=var colorNames = ){[^;]*', response.body)
若匹配到colorNameString,colorNameString是一个对象。
用colorNameString = colorNameString.group()   colorNameString变成JSON

strinfo = re.compile("'")
# 单引号 替换 双引号
styleIdsString = strinfo.sub('"', styleIdsString.group())
结果:{"3":"Black","105":"Black Stretch","301901":"Black Stretch 1"} 

eg:
phone = '2004-959-559'
num = re.sub(r'\D', "", phone)
num结果为:2004959559

表示:从response中匹配
eg:匹配字符串为
pImgs[3632062]['2x']['2'] = 'http://www.zappos.com/images/z/3/6/3/2/0/6/3632062-2-2x.jpg';
pImgs[3632062]['4x']['2'] = { filename: 'http://www.zappos.com/images/z/3/6/3/2/0/6/3632062-2-4x.jpg', width: '1920', height: '2240' };
pImgs[3632062]['MULTIVIEW_THUMBNAILS']['3'] = 'http://www.zappos.com/images/z/3/6/3/2/0/6/3632062-3-MULTIVIEW_THUMBNAILS.jpg';
pImgs[3632062]['MULTIVIEW']['3'] = 'http://www.zappos.com/images/z/3/6/3/2/0/6/3632062-3-MULTIVIEW.jpg';

[ ] ' 为特殊字符 匹配需要前面加\
\d+ \d表示匹配数字 +表示若干个 .*表示后面若干个 g表示已经g结尾 包括g \D表示非数字
比如要匹配出 第1.第2条数据
imageList = re.findall(r'pImgs\[\d+\]\[\'\d.*g',respinse.body)
若匹配出 第3.第4条数据
imageList = re.findall(r'pImgs\[\d+\]\[\'\D.*g',respinse.body)

结果:
pImgs[3632062]['MULTIVIEW_THUMBNAILS']['3'] = 'http://www.zappos.com/images/z/3/6/3/2/0/6/3632062-3-MULTIVIEW_THUMBNAILS.jpg
pImgs[3632062]['MULTIVIEW']['3'] = 'http://www.zappos.com/images/z/3/6/3/2/0/6/3632062-3-MULTIVIEW.jpg



 









  

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

正则表达式的语法

  • 2012年10月17日 10:07
  • 73KB
  • 下载

python网络爬虫学习(三)正则表达式的使用之re.match方法

一.为什么要学习正则表达式很好,我们现在已经能够写出获得网站源代码的程序了,我们有了第一个问题:如何从杂乱的代码中找到我们所需的信息呢?此时,正则表达式的学习就显得很有必要了。有人打趣说,当你想到用正...

python之正则表达式的学习

近来闲来无事,学习一下python的基本用法,深深感受到其用法的简洁性和扩展性,必须对于简单的文件写入操作:f=open('demo.txt','r') f.write('HelloWorld!') ...

python中的正则表达式的学习

一、 正则表达式基础 1.1.概念介绍 正则表达式是用于处理字符串的强大工具,它并不是Python的一部分。 其他编程语言中也有正则表达式的概念,区别只在于不同的编程语言实现支持的语...

python网络爬虫学习(四)正则表达式的使用之re的其他方法

在上一篇文章中,我们学习了re的match方法,那么掌握了match方法,其他的方法学起来就相对轻松许多,下面对这些方法进行介绍re.searchsearch方法与match方法最大的不同在于,mat...

基于正则表达式的JavaScript/C++语法高亮(js版)

JavaScript的语法高亮一直是个难点,因为需要语义分析以确定/是除法操作的开始还是正则表达式的开始。目前关于高亮js的语法高亮都不是很理想,尤其是syntaxhighlighter(你待会看到的...

php正则表达式的基本语法

正则表达式的基本语法 首先,让我们看看两个特别的字符:’^’ 和 ‘$’ 他们是分别用来匹配字符串的开始和结束,一下分别举例说明 "^The": 匹配以 "The"开头的字符串;  ...

.NET中正则表达式的语法用例

字符匹配语法:     字符语法 语法解释 语法例子 \d 匹配数字(0~9) ‘\d’匹配8,不匹配12; \D 匹配非数字 ‘\D’匹配c,不匹配3; \w 匹配任意单字符 ‘...

mysql语法、特殊符号及正则表达式的使用

http://blog.csdn.net/pipisorry/article/details/46773545 sql语言 结构化的查询语言。(Structured Query Language)...

python学习笔记(一)——关于正则表达式的学习小结

python中提供了re这个模块提供对正则表达式的支持。 一、正则表达式常用到的一些语法(并非全部): . 匹配任意单个字符 [...] 匹配单个字符集 \w 匹配单词字...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于Python语法、正则表达式的学习
举报原因:
原因补充:

(最多只允许输入30个字)