美文网首页
为何选Scrapy&常用正则

为何选Scrapy&常用正则

作者: ericblue | 来源:发表于2018-09-14 12:25 被阅读0次

关于爬虫开发可选功能组件比较:
1、requests和beautifulsoup都是库,scrapy是框架。
2、scrapy框架中可以加入requests和beautifulsoup。
3、scrapy基于twisted,性能是最大优势,可参考:Twisted学习心得
4、scrapy内置的css和xpath selector方便易用,beautifulsoup缺点是慢。
5、lxml是c写的框架,beautifulsoup是python写的框架。
常用正则表达式学习记录:
1、特殊字符
1)^ 代表字符串起始字符
2)$ 代表字符串结尾字符
3). 代表任意字符,匹配除换行符(\n、\r)之外的任何单个字符。要匹配包括 4)'\n' 在内的任何字符,请使用像"(.|\n)"的模式
5)* 代表前面字符可以重复多次,贪婪匹配,匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。* 等价于{0,}
6)? 代表限制只取1个字符,匹配前面的子表达式零次或一次。例如,"do(es)?" 可以匹配 "do" 或 "does" 。? 等价于 {0,1}
7)+ 代表匹配前面的子表达式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等价于 {1,}
8){n,}n 代表是一个非负整数。至少匹配n 次。例如,'o{2,}' 不能匹配 "Bob" 中的 'o',但能匹配 "foooood" 中的所有 o。'o{1,}' 等价于 'o+'。'o{0,}' 则等价于 'o*'
9){n,m} 代表m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。例如,"o{1,3}" 将匹配 "fooooood" 中的前三个 o。'o{0,1}' 等价于 'o?'。请注意在逗号和两个数之间不能有空格
10)x|y 代表匹配 x 或 y。例如,'z|food' 能匹配 "z" 或 "food"。'(z|f)ood' 则匹配 "zood" 或 "food"
11)[ ] 代表字符集合,当为[xyz]时匹配所包含的任意一个字符,例如, '[abc]' 可以匹配 "plain" 中的 'a'。当为[a-z]匹配指定范围内的任意一个字符,例如,'[a-z]' 可以匹配 'a' 到 'z' 范围内的任意小写字母字符。当为[a-z]{6}匹配指定范围内的任意6个字符。当为[a-z]匹配任何不在指定范围内的任意字符,例如,'[a-z]' 可以匹配任何不在 'a' 到 'z' 范围内的任意字符。另外,当*.等特殊字符在[ ]中就没有特殊使用功能
12)\s 代表匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]
13)\S 代表匹配任何非空白字符。等价于 [^ \f\n\r\t\v]
14)\w 匹配字母、数字、下划线。等价于[A-Za-z0-9_]
15)\W 匹配非字母、数字、下划线。等价于 [^A-Za-z0-9_]
16)[\u4e00-\u9fa5] 这是专门用于匹配简体中文的正则表达式, 繁体字也在里面,[\u4e00-\u9fa5] 只匹配一个中文,[\u4e00-\u9fa5]+ 匹配一个或多个中文

17)(\d{4}[年/-]\d{1,2}([月/-]\d{1,2}|[月/-]$|$)) 匹配年月日之间不同间隔的正则表达式,例如:2010年8月,2010/8,2010-8等

相关文章

网友评论

      本文标题:为何选Scrapy&常用正则

      本文链接:https://www.haomeiwen.com/subject/ugrtgftx.html