重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

python3re怎么用来提取大量的数据-创新互联

这篇文章主要介绍了python3 re怎么用来提取大量的数据,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。

成都创新互联公司长期为上1000+客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为仁和企业提供专业的成都网站设计、成都做网站、外贸网站建设仁和网站改版等技术服务。拥有10年丰富建站经验和众多成功案例,为您定制开发。

具体代码:

re_label_script
# -*- coding:utf-8 -*-
# 自定义创建文件夹并保存图片
import re
import os
from urllib.request import urlretrieve
 
content = '''

'''
 
# 自定义函数,在创建新的文件夹
# 固定,可直接套用
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
def mkdir(path):
    # 去除首位空格
    path = path.strip()
    # 去除尾部符号 ‘\\’
    path = path.rstrip("\\")
    # 判断路径是否存在
    isExists = os.path.exists(path)
    # 去掉目录路径,返回文件夹名
    fp_new = os.path.basename(path)
    if not isExists:
        # 如果不存在,则创建目录 os.makedirs(path)
        os.makedirs(path)
        print(path + '  新文件夹' + fp_new + '创建成功')
        return True
    else:
        # 如果目录存在则不创建
        print(path + '  文件夹' + fp_new + '已存在')
        return False
 
# 当前路径下创建文件夹用来保存图片
# 获取当前路径dir_path
dir_path = os.path.abspath(".")
# dir_new 绝对路径
dir_new = dir_path + '\\pic_down'           # 新建文件夹的名字
# 传参并创建新文件夹在当前路径下,文件夹名称为pic_down
mkdir(dir_new)
# 固定,可直接套用
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
html_script = r''
info_script = re.findall(html_script, content, re.S|re.M)
for script in info_script:
    res_original = r'"original":"(.*?)"'  # 原图
    pic_script = re.findall(res_original, script)
    for pic in pic_script:
        print(pic)
        # urlretrieve()函数下载图片
        filename = os.path.basename(pic)                    # 去掉目录路径,返回文件名
        urlretrieve(pic, dir_new + '\\' +filename)        #下载图片
 
 
 
re_label_span 过滤等标签
# -*- coding:utf-8 -*-
# 过滤等标签
import re
 
language = '''

周恩来

性別:
男d


異名:
(字) 翔宇


政黨:
中国共产党


籍貫:
浙江省绍兴市


'''
 
# 获取table中的tr值
res_tr = r"(.*?)"
info_tr = re.findall(res_tr, language, re.S|re.M)
for line in info_tr:
    # 获取表格第一列 th 属性
    res_th = r"(.*?)"
    info_th = re.findall(res_th, line, re.S|re.M)
    # print(info_th)          # ['性別:']\n['異名:']\n['政黨:']\n['籍貫:']
    for mm in info_th:
        # 处理掉href链接
        if "href" in mm:    # 如果href链接存在info_th中,则处理
            restr = r'(.*?)'  # 只获取a标签的内容,不获取链接 re.findall() (.*?)
            h = re.findall(restr, mm, re.S|re.M)
            print(h[0])    # 为什么加逗号
        else:
            print(mm)      # 为什么加逗号
 
    # 获取表格第二列 th 属性
    res_td = r'(.*?)'
    info_td = re.findall(res_td, line, re.S|re.M)
    for nn in info_td:            # 两个if判断的先后顺序
        # 处理掉href链接或者rel等信息 (对于政党中既有span 又有a标签,由于内容是在a标签中,不须考虑span的影响)
        if "href" in nn:        # 判断内容直接所属的标签
            res_value = r'(.*?)'     # 处理等信息
            td_value = re.findall(res_value, nn, re.S|re.M)
            # print(td_value)
            for value in td_value:              # 一个td中可能会有多个href或者rel等信息
                print(value)
        elif "span" in nn:
            res_value = r'(.*?)'     # 对于政党中,由于已经先判断了href,故不会执行到elif span中
            td_value = re.findall(res_value, nn, re.S|re.M)
            for value in td_value:
                print(value)
        else:
            print(nn)
 
 
 
 
 
re_label_sub img_replace br (过滤掉换行符)
# -*- coding:utf-8 -*-
# 获取中超链接及过滤标签
import os
import re
 
value = '''



中華民國政治人士
性別: 男 政黨: 中國國民黨 ''' # # 过滤HTML标签 ,<>包含的内容全部替换为空值 # value = re.sub('<[^>]+>', '', value) # 过滤HTML标签 ,<>包含的内容全部替换为空值 # print(value)   # 先过滤掉上诉替换空值后的换行符
if '
' in value or '\n' in value:     value = value.replace('
', '') # 
替换为空值     value = value.replace('\n', ' ') # \n替换为空格   value = re.sub('<[^>]+>', '', value) # <>包含的内容全部替换为空值, 首位有空格 # 中華民國政治人士 性別: 男 政黨: 中國國民黨 value = value.strip() # 去掉value首尾的空格 # 中華民國政治人士 性別: 男 政黨: 中國國民黨 print(value)         re_label_table # -*- coding:utf-8 -*- import re   s = '''
序列号DEIN3-39CD3-2093J3 日期2013年1月22日 售价392.70 元 说明仅限5用户使用
''' info = re.findall(r"(.*?)(.*?)", s, re.S|re.M) for line in info:     print(line[0],line[1])        #或者print(line) 一样的结果 # 序列号 DEIN3-39CD3-2093J3 # 日期 2013年1月22日 # 售价 392.70 元 # 说明 仅限5用户使用   #     print(line[1]) # DEIN3-39CD3-2093J3 # 2013年1月22日 # 392.70 元 # 仅限5用户使用       re_label_title # -*- coding:utf-8 -*- import re from urllib.request import urlopen   request = urlopen("http://www.csdn.net/";).read().decode('utf-8';)   print("方法一:")           # re.search()   撇配第一个 title_pat = r"性別:男性別:女''' # 正则表达式获取之间内容 # 核心代码: res_tr = r'(.*?)' m_tr = re.findall(res_tr, language, re.S|re.M) # /核心代码   for line in m_tr:     print(line)   # 获取表格第一列th属性 res_th = r'(.*?)' m_th = re.findall(res_th, line, re.S|re.M) for mm in m_th:     print(mm)   # 获取表格第二列td属性 res_td = r'(.*?)' m_td = re.findall(res_td, line, re.S|re.M) for nn in m_td:     print(nn) # results: # < th > 性別: < / th > < td > 男 < / td > # 性別: # 男 # < th > 性別: < / th > < td > 女 < / td > # 性別: # 女             re_label_head 作者: Klaus_Lyu # -*- coding:utf-8 -*- import re   content = """           豆瓣电影 Top 250          ;;     var _head_start = new Date();     img { max-width: 100%; }           """   # 核心代码: # regex = r'' # regex = r'(?<=)'     # regex = r'(?<=link.*?)href=".*?(?=")|(?<=link.*?)href=\'.*?(?=\')' # 前提条件(?<=link.*?)不对,必须是确定的,不能用匹配的表达式,正确的是(?<=link ) link_href = re.findall(r'(?<=)', content,) for line in link_metal:     print(line)     # http - equiv = "Content-Type" content = "text/html; charset=utf-8"     # http - equiv = "Expires"  content = "Sun, 6 Mar 2005 01:00:00 GMT"   link_metal = re.findall(r'', content,) for line in link_metal:     print(line)     #      #        re_label_href # -*- coding:utf-8 -*- import re from urllib.request import urlopen   # !!!!!爬取豆瓣top250首页的源代码 # 自定义函数获取网页源代码,自动获取网站编码格式并按相应格式解码赋值给request def download(html):     urlorgs = urlopen(html).read()     # 检测url的编码格式     # char_url = chardet.detect(urlorgs)     # print(char_url['encoding'])     # print(char_url)    # {'encoding': 'GB2312', 'confidence': 0.99, 'language': 'Chinese'}                          # url按照对应的编码格式进行解码输出, chardet.detect()内容为key-value字典     # request = urlorgs.decode(char_url['encoding'])     request = urlorgs.decode('utf-8')     return request   # 传参 html,获得正确编码后的网页源代码 request = download("https://movie.douban.com/top250";;) # print(request)   # 爬链接要有针对性地根据目标值来观察链接的特征,依据特征进行针对性地爬取 # # 爬取a标签中所有URL链接 (目测意义不大) urls = re.findall(r"", request, re.I|re.M) for url in urls:     print(url)   # 爬取所有href前缀的link(目测也是意义不大) link_list = re.findall(r"(?<=href=\").+?(?=\")|(?<=href=\').+?(?=\')", request) for url in link_list:     print(url)

感谢你能够认真阅读完这篇文章,希望小编分享python3 re怎么用来提取大量的数据内容对大家有帮助,同时也希望大家多多支持创新互联网站建设公司,,关注创新互联行业资讯频道,遇到问题就找创新互联网站建设公司,,详细的解决方法等着你来学习!


文章标题:python3re怎么用来提取大量的数据-创新互联
本文来源:http://cqcxhl.com/article/dcogsh.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP