资讯专栏INFORMATION COLUMN

scrapy学习之路1.1(正则表达式)

AlphaGooo / 1820人阅读

摘要:以某个开头以某个结尾某个任意多次,大于等于让某个取消贪婪匹配,可以理解为改为从左到右匹配到某个为止某个至少为一次,大于等于例某个出现到次等或者选或者有三种意思,中括号的任选一个就代表号,不代表任意字符了例非

^ 以某个开头

$ 以某个结尾

* 某个任意多次,大于等于0

? 让某个取消贪婪匹配,可以理解为改为从左到右匹配到某个为止

+ 某个至少为一次,大于等于1

{ }例,{2,5},某个出现2到5次.....{2},{2,}等

| 或者(a|b),选a或者b

[ ]有三种意思,1.[13567]中括号的任选一个-------2.[0-9],[a-z]-------3.[.]就代表.号,不代表任意字符了

[^]例,[^1]非1

[a-z]同上

/s空格

/S非空格

/w代表[A-Za-z0-9_]

/W代表非[A-Za-z0-9_]

[u4E00-u9FA5]代表汉字

( )

/d数字

import re
line1 = "你出生在2016-09-01"
line2 = "你出生在2016-9-1"
line3 = "你出生在2016/09/01"
line4 = "你出生在2016年9月1号"
line5 = "你出生在2016-09"

regex_str = "(你出生在d{4}(-|/|年)d{1,2}($|(月|/|-)d{1,2}($|号)))"
match_obj = re.match(regex_str, line5)
if match_obj:
    print(match_obj.group(1))
    
#五个line都能匹配
简单的爬虫
# -*- coding: utf-8 -*-
# @Author: Lai

import re
import os
import requests

BASE_PATH = "E:/EW/"


def get_block_link(url):
    html_obj = requests.get(url)
    reg = ".*?"
        link = re.findall(reg, html_obj.text)[0]
        links.append(link)
    return links


def get_charterName_and_content(url):
    html_obj = requests.get(url)
    html_obj.encoding = "GBK"
    reg_content = "id="content">(.*?)                
阅读需要支付1元查看
<