When I execute the following script...
def extractsms(htmlsms) :
"""
extractsms -- extract SMS messages from BeautifulSoup tree of Google Voice SMS HTML.
Output is a list of dictionaries, one per message.
"""
msgitems = [] # accum message items here
# Extract all conversations by searching for a DIV with an ID at top level.
tree = bs4.BeautifulSoup(htmlsms) # parse HTML into tree
conversations = tree.findAll("div",attrs={"id" : True},recursive=False)
for conversation in conversations :
# For each conversation, extract each row, which is one SMS message.
rows = conversation.findAll(attrs={"class" : "gc-message-sms-row"})
for row in rows : # for all rows
# For each row, which is one message, extract all the fields.
msgitem = {"id" : conversation["id"]} # tag this message with conversation ID
spans = row.findAll("span",attrs={"class" : True}, recursive=False)
for span in spans : # for all spans in row
cl = span["class"].replace('gc-message-sms-', '')
msgitem[cl] = (" ".join(span.findAll(text=True))).strip() # put text in dict
msgitems.append(msgitem) # add msg dictionary to list
return msgitems
voice = Voice()
voice.login()
voice.sms()
for msg in extractsms(voice.sms.html):
print(str(msg))
I get this error....
Traceback (most recent call last): File "<stdin>", line 1, in <module> File "C:\ProgramData\Anaconda3\lib\site-packages\googlevoice\voice.py", line 60, in login email = config.email File "C:\ProgramData\Anaconda3\lib\site-packages\googlevoice\conf.py", line 55, in <lambda> email = property(lambda self: self.get('email', 'auth')) File "C:\ProgramData\Anaconda3\lib\site-packages\googlevoice\conf.py", line 35, in get return ConfigParser.get(self, section, option).strip() or None File "C:\ProgramData\Anaconda3\lib\configparser.py", line 800, in get d) File "C:\ProgramData\Anaconda3\lib\configparser.py", line 394, in before_get self._interpolate_some(parser, option, L, value, section, defaults, 1) File "C:\ProgramData\Anaconda3\lib\configparser.py", line 407, in _interpolate_some rawval = parser.get(section, option, raw=True, fallback=rest) TypeError: get() got an unexpected keyword argument 'raw'
I found the config file and put the username and password in but am stuck.
Any ideas?
When I execute the following script...
I get this error....
Traceback (most recent call last): File "<stdin>", line 1, in <module> File "C:\ProgramData\Anaconda3\lib\site-packages\googlevoice\voice.py", line 60, in login email = config.email File "C:\ProgramData\Anaconda3\lib\site-packages\googlevoice\conf.py", line 55, in <lambda> email = property(lambda self: self.get('email', 'auth')) File "C:\ProgramData\Anaconda3\lib\site-packages\googlevoice\conf.py", line 35, in get return ConfigParser.get(self, section, option).strip() or None File "C:\ProgramData\Anaconda3\lib\configparser.py", line 800, in get d) File "C:\ProgramData\Anaconda3\lib\configparser.py", line 394, in before_get self._interpolate_some(parser, option, L, value, section, defaults, 1) File "C:\ProgramData\Anaconda3\lib\configparser.py", line 407, in _interpolate_some rawval = parser.get(section, option, raw=True, fallback=rest) TypeError: get() got an unexpected keyword argument 'raw'I found the config file and put the username and password in but am stuck.
Any ideas?