Найти - Пользователи
Полная версия: Парсинг
Начало » Python для новичков » Парсинг
1 2
o7412369815963
по правильному там не должно быть столько переводов строк, поэтому так:
# coding: utf8

import re
text = '''--SBD.Boundary.605592468
Content-Type: application/x-zip-compressed; name="SBMmessage.sbd"
Content-Disposition: attachment; filename="300224010715200_001453.sbd"
Content-Transfer-Encoding: base64

MjAwOS0xIC0xNCAyIDo1OAlMRU5HCS0zLjIgIAk5OSAgCTk0Ny40ICAJOTQ3LjYgIAk5ODMuMCAg
CTEuNCAgICAJMyAgICAgCTkuNCAgIAkxNDEgIAkxMy41NTIJDQoNCg==
--SBD.Boundary.605592468--'''

g = re.match('.*?\n\n(.*)--SBD', text, re.DOTALL)
if g:
print g.groups(0)[0].decode('base64')
XdenisX
o7412369815963
по правильному там не должно быть столько переводов строк, поэтому так:
# coding: utf8

import re
text = '''--SBD.Boundary.605592468
Content-Type: application/x-zip-compressed; name="SBMmessage.sbd"
Content-Disposition: attachment; filename="300224010715200_001453.sbd"
Content-Transfer-Encoding: base64

MjAwOS0xIC0xNCAyIDo1OAlMRU5HCS0zLjIgIAk5OSAgCTk0Ny40ICAJOTQ3LjYgIAk5ODMuMCAg
CTEuNCAgICAJMyAgICAgCTkuNCAgIAkxNDEgIAkxMy41NTIJDQoNCg==
--SBD.Boundary.605592468--'''

g = re.match('.*?\n\n(.*)--SBD', text, re.DOTALL)
if g:
print g.groups(0)[0].decode('base64')
Спасибо, то что нужно!
XdenisX
o7412369815963
А как найти допустим второе вхождение этого текста?
Допустим, он выглядит так:

SBM Message
--SBD.Boundary.605592468
Content-Type: text/plain;charset=US-ASCII
Content-Disposition: inline; Content-Transfer-Encoding: 7bit

MOMSN: 1453
MTMSN: 0
Time of Session (UTC): Wed Jan 14 06:07:02 2009
Session Status: 00 - Transfer OK
Message Size (bytes): 97

Unit Location: Lat = -69.540903 Long = 159.359961
CEPradius = 8

--SBD.Boundary.605592468
Content-Type: application/x-zip-compressed; name="SBMmessage.sbd"
Content-Disposition: attachment; filename="300224010715200_001453.sbd"
Content-Transfer-Encoding: base64

MjAwOS0xIC0xNCAyIDo1OAlMRU5HCS0zLjIgIAk5OSAgCTk0Ny40ICAJOTQ3LjYgIAk5ODMuMCAg
CTEuNCAgICAJMyAgICAgCTkuNCAgIAkxNDEgIAkxMy41NTIJDQoNCg==
--SBD.Boundary.605592468--
o7412369815963
регепс поправить…, или сделать text.split('\n\n').
какой именно кусок текста нужен? про написание регепса можешь глянуть тут
XdenisX
o7412369815963
регепс поправить…, или сделать text.split('\n\n').
какой именно кусок текста нужен? про написание регепса можешь глянуть тут
Спасибо.
нужен вот этот кусок:

MjAwOS0xIC0xNCAyIDo1OAlMRU5HCS0zLjIgIAk5OSAgCTk0Ny40ICAJOTQ3LjYgIAk5ODMuMCAg
CTEuNCAgICAJMyAgICAgCTkuNCAgIAkxNDEgIAkxMy41NTIJDQoNCg==
XdenisX
Наверное вот так:

g = re.match('.*?base64\n\n(.*)--SBD', text, re.DOTALL)
o7412369815963
XdenisX
Наверное вот так:

g = re.match('.*?base64\n\n(.*)--SBD', text, re.DOTALL)
наверно
XdenisX
o7412369815963
XdenisX
Наверное вот так:

g = re.match('.*?base64\n\n(.*)--SBD', text, re.DOTALL)
наверно
Да, все отрабатывает как надо. Спасибо большое за статью, сразу пришло понимание написанного :)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB