Python网络爬虫与信息提取 Robots协议+正则表达式

京东Robots协议

#'*'代表所有,“/"代表根目录。
User-agent: *  #对于任意网络爬虫,应遵循如下协议
Disallow: /?* #任何爬虫不允许访问以“?”开头的路径
Disallow: /pop/*.html 
Disallow: /pinpai/*.html?* 
User-agent: EtaoSpider #这四个被认为是恶意爬虫,全部被禁
Disallow: / 
User-agent: HuihuiSpider 
Disallow: / 
User-agent: GwdangSpider 
Disallow: / 
User-agent: WochachaSpider 
Disallow: /

Python网络爬虫与信息提取 Robots协议+正则表达式_第1张图片

[abc]表示a或b或c中的一个。

Python网络爬虫与信息提取 Robots协议+正则表达式_第2张图片

match.group([group1, ...])

返回 match 的一个或多个子组。

如果只有唯的一参数,返回单一的子符串;如果有多个参数,结果是对应每一个参数的元素组成的 tuple 。 
如果没有参数, group1 的默认值为 0 (返回整个匹配的字符串)。

如果一个 groupN 参数的值为 0 ,对应的返回值为整个匹配的字符串;如果参数值在 1 到 99 之间(含),返回对应的括号组匹配的字符串。

如果组号参数 (groupN)为负数,或者大于定义在模式中的组的个数,会抛出一个 IndexError 异常。

如果模式中的某个组没有匹配(例如:(\w+ )?(\w+ )*),对应的结果为 None 。

如果模式中的某个组匹配了多次(例如:(\w+ )+(\w+ )*),将返回最后匹配的字符串。

 

Python网络爬虫与信息提取 Robots协议+正则表达式_第3张图片

两种Re库使用方法

1.函数式用法:一次性操作

rst=re.search(r'[1-9]\d{5}', 'BIT 100081‘)

2.面向对象用法:编译后的多次操作

pat=re.compile(r'[1-9]\d{5}')

regex=re.compile(pattern, flags=0)

rst=pat.search('BIT 100081')

将正则表达式的字符串编译成一个正则表达式类型,用pat对象直接调用search, match等6个方法。

 

Python网络爬虫与信息提取 Robots协议+正则表达式_第4张图片

 

Python网络爬虫与信息提取 Robots协议+正则表达式_第5张图片

贪婪匹配:Re库默认采用,输出匹配的最长子串。

最小匹配

match=re.search(r'PY.*?N', 'PYANBNCNDN')

match.group(0)

'PYAN'

Python网络爬虫与信息提取 Robots协议+正则表达式_第6张图片

你可能感兴趣的:(Python网络爬虫与信息提取 Robots协议+正则表达式)