crawler to follow links and get information from links python - python
Guys I need to make a bot that will collect some information from links, it will first go to this link https://www.mediktor.com/pt-br/glossario and get the links to all the diseases and then go one by one and get their information like description, epidemiology, symptoms and etc. I came up with this code where it can get the links but it doesn't return anything when I try to access them and get the information
import scrapy
import time
import requests
import pandas as pd
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
import json
class DicionarioSpider(scrapy.Spider):
name = 'dicionario'
allowed_domains = ['www.mediktor.com']
start_urls = ['http://www.mediktor.com/']
def start_requests(self):
url = "https://www.mediktor.com/pt-br/glossario"
options = Options()
options.headless = True
driver = webdriver.Chrome(options=options)
driver.get(url)
time.sleep(10)
doencas = driver.find_elements(
By.XPATH, "//a[#class='mdk-dictionary-list__glossary-item']")
for doenca in doencas:
url = doenca.get_attribute('href')
yield scrapy.Request(url)
driver.quit()
def parse(self, response):
urls = response.css(
'.mdk-dictionary-list__glossary-item a::attr(href)')
for url in urls:
yield response.follow(url.get(), callback=self.parse_info)
def parse_info(self, response):
contents = response.css('div.page-glossary-detail__main-content')
for desc in response.css('div.mdk-conclusion-detail__main-description'):
desc = response.css('p ::text').getall()
yield {
'desc': desc
}
for content in contents:
yield{
'name': content.css(
'div.mdk-conclusion-detail__main-title ::text').get().strip(),
'espec': content.css(
'div.mdk-ui-list-item__text mdc-list-item__text span::text').strip()
}
the data is dynamically loaded, you can get all possible IDs, and one by one go through and get information on them. In my example, getting the first one from the list, and a huge JSON from which you will get all the necessary data. I had to cut off part of it because of the character limit
import pandas as pd
import requests
from bs4 import BeautifulSoup
def get_auth_code():
url = "https://www.mediktor.com/vendor.js"
response = requests.get(url)
start_index = response.text.index('APP_API_AUTH_CODE:"', 0) + len('APP_API_AUTH_CODE:"')
end_index = response.text.index('"', start_index)
return response.text[start_index:end_index]
def get_auth_token_and_device_id():
url = "https://euapi01.mediktor.com/backoffice/services/login"
payload = "{\"useCache\":0,\"apiVersion\":\"4.1.1\",\"appVersion\":\"8.7.0\"," \
"\"appId\":null,\"deviceType\":\"WEB\",\"deviceToken\":null,\"language\":\"en_EN\"," \
"\"timezoneRaw\":180,\"authTokenRefreshExpiresIn\":null}"
headers = {
'authorization': f'Basic {get_auth_code()}',
'Content-Type': 'text/plain'
}
response = requests.request("POST", url, headers=headers, data=payload)
return response.json()['authToken'], response.json()['deviceId']
def get_conclusion_list(auth_token, device_id):
url = "https://euapi01.mediktor.com/backoffice/services/conclusionList"
payload = "{\"useCache\":168,\"apiVersion\":\"4.1.1\",\"appVersion\":\"8.7.0\"" \
",\"appId\":null,\"deviceType\":\"WEB\",\"deviceToken\":null,\"language\":\"pt_BR\"," \
"\"timezoneRaw\":180,\"deviceId\":\"" + device_id + "\"}"
headers = {
'accept': 'application/json, text/plain, */*',
'authorization': f'Bearer {auth_token}',
'content-type': 'application/json;charset=UTF-8'
}
response = requests.request("POST", url, headers=headers, data=payload)
return [conclusionId['conclusionId'] for conclusionId in response.json()['conclusions']]
def get_details(conclusionId, auth_token, device_id):
url = "https://euapi01.mediktor.com/backoffice/services/conclusionDetail"
payload = "{\"useCache\":0,\"apiVersion\":\"4.1.1\",\"appVersion\":\"8.7.0\"," \
"\"appId\":null,\"deviceType\":\"WEB\",\"deviceToken\":null,\"language\":\"pt_BR\"," \
"\"timezoneRaw\":180,\"deviceId\":\"" + device_id + "\"," \
"\"conclusionId\":\"" + conclusionId + "\"," \
"\"conclusionTemplate\":\"conclusion_description_body\",\"includeActions\":true}"
headers = {
'authorization': f'Bearer {auth_token}',
'content-type': 'application/json;charset=UTF-8'
}
response = requests.request("POST", url, headers=headers, data=payload)
return response.text
auth_token, device_id = get_auth_token_and_device_id()
conclusion_list = get_conclusion_list(auth_token, device_id)
for conclusion in conclusion_list[:1]:
print(get_details(conclusion, auth_token, device_id))
OUTPUT:
{"conclusion":{"conclusionId":"e61a5a5b-2587-48ee-af32-49331f659810","description":"Pitiríase rósea de Gibert (Pediatria)","descriptionMap":{"it_IT":["Pitiriasi rosea di Gibert (Pediatria)"],"el_GR":["Ροδόχρους πιτυρίαση Gilbert (Παιδιατρική)"],"fr_BE":["Pityriasis rosé de Gibert (Pédiatrie)"],"nl_BE":["Pityriasis rosea van Gibert (Pediatrie)"],"pt_BR":["Pitiríase rósea de Gibert (Pediatria)"],"fr_FR":["Pityriasis rosé de Gibert (Pédiatrie)"],"ca_ES":["Pitiriasi rosada de Gibert (Pediatria)"],"de_DE":["Röschenflechte - Pityriasis rosea (Kinderheilkunde)"],"en_US":["Pityriasis rosea Gibert (Pediatrics)"],"es_MX":["Pitiriasis rosada de Gibert (Pediatría)"],"zh_CN":["玫瑰糠疹 (儿科)"],"es_ES":["Pitiriasis rosada de Gibert (Pediatría)"],"en_EN":["Pityriasis rosea Gibert (Paediatrics)"],"pt_PT":["Pitiríase rósea de Gibert (Pediatria)"]},"lastEdited":1650459591108,"frequency":0.2,"frequencyEnum":0,"descriptionHeaderImage":"https://api.mediktor.com/backoffice/downloads/File.Download?userId=04c35e41-6a8b-4541-44a3-cc20230ebdff&type=media&id=45c9a541-dbfc-41fe-8b73-76d021b245a1&d=1596042153781&b&l=1920","descriptionExtendedManagerFullName":"Dr Maria Trabazo","lastEditedGlobalFormattedToDay":"20/05/2022","severity":0.05,"severityEnum":0,"icd9":"696.3","icd10":"L42","specialties":["Dermatologia","Pediatria"],"specialtyIdList":["11","32"],"hasDescriptionExtended":true,"images":["https://api.mediktor.com/backoffice/downloads/File.Download?userId=04c35e41-6a8b-4541-44a3-cc20230ebdff&type=media&id=45c9a541-dbfc-41fe-8b73-76d021b245a1&d=1596042153781&b&l=1920","https://api.mediktor.com/backoffice/downloads/File.Download?userId=04c35e41-6a8b-4541-44a3-cc20230ebdff&type=media&id=9cd01ae5-383b-481a-92a8-518fe4dc3a9d&d=1560963312374&b&l=1920","https://api.mediktor.com/backoffice/downloads/File.Download?userId=04c35e41-6a8b-4541-44a3-cc20230ebdff&type=media&id=02202660-d437-4f91-b0c1-3cd35efb6663&d=1500652985149&b&l=1920"],"mediaFileList":[{"mediaURL":"https://api.mediktor.com/backoffice/downloads/File.Download?userId=04c35e41-6a8b-4541-44a3-cc20230ebdff&type=media&id=45c9a541-dbfc-41fe-8b73-76d021b245a1&d=1596042153781&b&l=1920","copyright":"© Copyright TeckelMedical","description":"Pitiríase rósea de Gibert","type":1},{"mediaURL":"https://api.mediktor.com/backoffice/downloads/File.Download?userId=04c35e41-6a8b-4541-44a3-cc20230ebdff&type=media&id=9cd01ae5-383b-481a-92a8-518fe4dc3a9d&d=1560963312374&b&l=1920","copyright":"© Copyright BIODERMA PRO","description":"Pitiríase de Gibert","type":1},{"mediaURL":"https://api.mediktor.com/backoffice/downloads/File.Download?userId=04c35e41-6a8b-4541-44a3-cc20230ebdff&type=media&id=02202660-d437-4f91-b0c1-3cd35efb6663&d=1500652985149&b&l=1920","copyright":"© Copyright TeckelMedical","description":"Pitiríase rósea de Gibert","type":1}],"actionList":[],"specialtyList":[{"categoryId":"11","specialtyId":"11","name":"Dermatologia","descriptionExtended":"<p>Especialidade que estuda, diagnostica e trata doenças da pele.</p>\n\n<p>Existem subespecialidades da dermatologia como, por exemplo, a dermatologia pediátrica, dermatologia cosmética, etc.</p>","image":"https://api.mediktor.com/backoffice/downloads/File.Download?userId=04c35e41-6a8b-4541-44a3-cc20230ebdff&type=media&id=bfbba59f-806d-43a7-a5c4-cbde2210143b&d=1477780137091&b&l=960","propertyValueList":[{"propertyId":"b9d82cad-1911-4fb6-b764-21fc25cf0341","name":"Código de especialidade do Medicare","value":"7"},{"propertyId":"593639e8-6423-4597-8801-3e362c1f9b7d","name":"OMC Id","value":"16"},{"propertyId":"cb6e1fc1-a673-4eab-8dec-4a483a473818","name":"SNOMED","value":"394582007"}],"isActive":true,"lastEdited":1657546400463,"typeMask":1048580,"isExclusive":false,"isSpecialty":true,"isHomeSection":false,"shownOrder":100,"tintColor":"#FF03A6A6","statements":[]},{"categoryId":"32","specialtyId":"32","name":"Pediatria","descriptionExtended":"<p>Especialidade que estuda, diagnostica, trata e previne doenças da infância.</p>\n\n<p>Engloba desde o nascimento até a adolescência, que, dependendo do país, varia desde os 16 aos 18 anos.</p>","image":"https://api.mediktor.com/backoffice/downloads/File.Download?userId=04c35e41-6a8b-4541-44a3-cc20230ebdff&type=media&id=b2dca339-eee3-479f-9545-67f6d9872cc2&d=1477779967750&b&l=960","propertyValueList":[{"propertyId":"b9d82cad-1911-4fb6-b764-21fc25cf0341","name":"Código de especialidade do Medicare","value":"37"},{"propertyId":"593639e8-6423-4597-8801-3e362c1f9b7d","name":"OMC Id","value":"2"}],"isActive":true,"lastEdited":1657546400456,"typeMask":4,"isExclusive":false,"isSpecialty":true,"isHomeSection":false,"shownOrder":100,"tintColor":"#FF03A6A6","statements":[]}],"descriptionExtended":"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n <!DOCTYPE html PUBLIC \"-//WAPFORUM//DTD XHTML Mobile 1.2//EN\"\r\n \"http://www.openmobilealliance.org/tech/DTD/xhtml-mobile12.dtd\">\r\n <html>\r\n <head>\r\n <meta name=viewport content=\"width=device-width, initial-scale=1\">\r\n <meta charset=\"utf-8\" /> \r\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\r\n <style>\r\n \tbody\r\n \t{\r\n \t\tmargin:0;\r\n \t\tpadding:0;\r\n \t\tfont-family: helvetica, arial, sans-serif;\r\n \t}\r\n \t.imgheadercontainer\r\n \t{\t\r\n \t\twidth:100%;\r\n \t}\r\n \t.imgheader\r\n \t{\r\n \t\twidth:100%;\r\n \t}\r\n \t.descriptionscontainer\r\n \t{\t\r\n \t\tpadding:10px;\r\n \t\ttext-align:justify;\r\n \t}\r\n \t.attachment_thumbnail\r\n \t{\r\n \t\twidth:20%;\r\n \t\theight:auto;\r\n \t}\r\n </style>\r\n </head>\r\n <body>\r\n \r\n <div class=\"descriptionscontainer\">\r\n <p>\n<p>Erupção benigna na pele que se caracteriza por placas eritematosas, que costumam começar no peito, costas e/ou abdômen e podem se espalhar para o resto do corpo. Pode surgir em qualquer idade, mas predomina em crianças maiores e adultos jovens.</p>\n<p>A causa é desconhecida, mas acredita-se ser devido a uma infecção viral. Não é contagiosa entre pessoas.</p>\n<p>Os sintomas iniciais são semelhantes a um resfriado comum: dor de cabeça, febre, dor de garganta e/ou congestão nasal. Segue-se o aparecimento de uma grande lesão cutânea escamosa e arredondada, que em poucos dias se estende na forma de lesões menores pelo resto do corpo. Geralmente, estas lesões provocam intensa coceira.</p>\n<p>O diagnóstico é clínico, baseado na anamnese e exame físico. Se existe dúvida quanto ao diagnóstico, pode-se complementar o estudo com exame de sangue e biopsia.</p>\n<p>O tratamento baseia-se em aliviar a coceira com anti-histamínicos e/ou loções; remédios caseiros, como banhos com água morna, podem ajudar a diminuir a coceira. O uso de fototerapia pode acelerar o desaparecimento das lesões cutâneas. Por último, empregam-se antivirais nos casos claramente associados a uma virose.</p>\n<p>Se você tem algum destes sintomas ou eles ainda não desapareceram 12 semanas após o diagnóstico, consulte um especialista.</p>\n</p>\r\n </div>\r\n <br/>\r\n <div class=\"imgheadercontainer\">\r\n <img class=\"imgheader\" src=\"https://api.mediktor.com/backoffice/downloads/File.Download?userId=04c35e41-6a8b-4541-44a3-cc20230ebdff&type=media&id=45c9a541-dbfc-41fe-8b73-76d021b245a1&d=1596042153781&b&l=1920\"/>\r\n </div>\r\n <br/>\r\n <div class=\"descriptionscontainer\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n <h4>Referências</h4>\r\n <p>\n<ol>\n\t<li>J. M Moragas. Manifestaciones cutáneas de las enfermedades internas. Interpretación de las alteraciones en la piel. Farreras Rozman. Medicina Interna. Volumen I. Duodécima edición. 707:719.</li>\n\t<li>T. J. Lwley, K.B. Yancey. Trastornos de la piel. Valoración del paciente con trastornos cutáneos. Harrison. Principios de Medicina Interna. Volumen I. Decimonovena edición. 339:352.</li>\n\t<li>I. López, C. Durán, M.M. Sáez, L. Orozco, C. Palacios, R. Ruiz. Pitiriasis rosada: un exantema que debe ser reconocido por el médico de primer contacto. Estudio de 30 casos. Acta Pediátr Mex 2014;35:289-294.</li>\n\t<li>UpToDate [Internet]. Waltham. 2017. Pityriasis rosea; [citado el 20 de julio de 2017]. Disponible en: http://www.uptodate.com/contents/pityriasis-rosea?source=search_result&search=pitiriasis+rosada&selectedTitle=1~1</li>\n</ol>\n</p>\r\n <br/>\r\n \r\n <h4>Palavras-chave</h4>\r\n <p>pitiríase rosea, vírus do herpes 7, pitiríase rósea de Gilbert, pitiríase rosea gibert</p>\r\n <br/>\r\n \r\n \r\n \r\n <br/>\r\n <br/>\r\n \r\n <p style=\"float:right;\"><b><small>\r\n \r\n Autor: Dr Maria Trabazo\r\n <br/>\r\n \r\n \r\n Revisado: 20/05/2022\r\n <br/>\r\n \r\n © TeckelMedical 2022</small></b></p>\r\n \r\n </div>\r\n \r\n </body>\r\n </html>","descriptionSummary":"<p>Erupção benigna na pele que se caracteriza por placas eritematosas, que costumam começar no peito, costas e/ou abdômen e podem se espalhar para o resto do corpo. Pode surgir em qualquer idade, mas predomina em crianças maiores e adultos jovens.</p>\n\n<p>A causa é desconhecida, mas acredita-se ser devido a uma infecção viral. Não é contagiosa entre pessoas.</p>\n\n<p>Os sintomas iniciais são semelhantes a um resfriado comum: dor de cabeça, febre, dor de garganta e/ou congestão nasal. Segue-se o aparecimento de uma grande lesão cutânea escamosa e arredondada, que em poucos dias se estende na forma de lesões menores pelo resto do corpo. Geralmente, estas lesões provocam intensa coceira.</p>\n\n<p>O diagnóstico é clínico, baseado na anamnese e exame físico. Se existe dúvida quanto ao diagnóstico, pode-se complementar o estudo com exame de sangue e biopsia.</p>\n\n<p>O tratamento baseia-se em aliviar a coceira com anti-histamínicos e/ou loções; remédios caseiros, como banhos com água morna, podem ajudar a diminuir a coceira. O uso de fototerapia pode acelerar o desaparecimento das lesões cutâneas. Por último, empregam-se antivirais nos casos claramente associados a uma virose.</p>\n\n<p>Se você tem algum destes sintomas ou eles ainda não desapareceram 12 semanas após o diagnóstico, consulte um especialista.</p>","descriptionKeywords":"pitiríase rosea, vírus do herpes 7, pitiríase rósea de Gilbert, pitiríase rosea gibert","descriptionBibliography":"<ol>\n\t<li>J. M Moragas. Manifestaciones cutáneas de las enfermedades internas. Interpretación de las alteraciones en la piel. Farreras Rozman. Medicina Interna. Volumen I. Duodécima edición. 707:719.</li>\n\t<li>T. J. Lwley, K.B. Yancey. Trastornos de la piel. Valoración del paciente con trastornos cutáneos. Harrison. Principios de Medicina Interna. Volumen I. Decimonovena edición. 339:352.</li>\n\t<li>I. López, C. Durán, M.M. Sáez, L. Orozco, C. Palacios, R. Ruiz. Pitiriasis rosada: un exantema que debe ser reconocido por el médico de primer contacto. Estudio de 30 casos. Acta Pediátr Mex 2014;35:289-294.</li>\n\t<li>UpToDate [Internet]. Waltham. 2017. Pityriasis rosea; [citado el 20 de julio de 2017]. Disponible en: http://www.uptodate.com/contents/pityriasis-rosea?source=search_result&search=pitiriasis+rosada&selectedTitle=1~1</li>\n</ol>","genderEpidemiologyDescription":"Encontrado igualmente em ambos os sexos.","ageEpidemiologyDescription":"Ocorre até a idade de 18 anos.","epidemiologyDescription":"Encontrado igualmente em ambos os sexos.\n Ocorre até a idade de 18 anos.\n","authorDescription":"Dr Maria Trabazo","copyrightDescription":"© TeckelMedical 2022","propertyValueList":[{"propertyId":"dd165ff4-e848-4b3e-b7bb-cec77117b8a1","name":"CID9","value":"696.3"},{"propertyId":"b0c0d503-cc2a-4416-a53c-e10f465d4bf9","name":"CID9 revisado","value":"b0c0d503-cc2a-4416-a53c-e10f465d4bf9:reviewed"},{"propertyId":"05c21681-3ff1-4c8c-bb0a-beba62984b6d","name":"CID10","value":"L42"},{"propertyId":"85c59095-eefe-469e-a6c4-faa7bf67d6a1","name":"CID10 revisado","value":"85c59095-eefe-469e-a6c4-faa7bf67d6a1:reviewed"},{"propertyId":"4a637756-3fd4-419b-9c84-31075135d8a3","name":"ICD11","value":"EA10"},{"propertyId":"f29c2d86-81fb-4ece-8375-bc1d89545af6","name":"CID11 revisado","value":"f29c2d86-81fb-4ece-8375-bc1d89545af6:reviewed"},{"propertyId":"cb6e1fc1-a673-4eab-8dec-4a483a473818","name":"SNOMED","value":"77252004"},{"propertyId":"b811b9b7-2aba-422b-9794-ae4633c837d9","name":"SNOMED revisado","value":"b811b9b7-2aba-422b-9794-ae4633c837d9:reviewed"}],"symptomsOrSigns":[{"statement":{"statementId":"207","description":"Você tem uma erupção cutânea?","descriptionShort":"Erupção cutânea","images":["https://api.mediktor.com/backoffice/downloads/File.Download?userId=04c35e41-6a8b-4541-44a3-cc20230ebdff&type=media&id=a00ba8a5-fc16-40cc-813b-f752548a93a0&d=1605264931409&b&l=1920","https://api.mediktor.com/backoffice/downloads/File.Download?userId=04c35e41-6a8b-4541-44a3-cc20230ebdff&type=media&id=b8027d03-fcc9-4dd0-901e-66b79f170268&d=1477638095996&b&l=1920"],"mediaFileList":[{"mediaURL":"https://api.mediktor.com/backoffice/downloads/File.Download?userId=04c35e41-6a8b-4541-44a3-cc20230ebdff&type=media&id=a00ba8a5-fc16-40cc-813b-f752548a93a0&d=1605264931409&b&l=1920","copyright":"© Copyright TeckelMedical","type":1},{"mediaURL":"https://api.mediktor.com/backoffice/downloads/File.Download?userId=04c35e41-6a8b-4541-44a3-cc20230ebdff&type=media&id=b8027d03-fcc9-4dd0-901e-66b79f170268&d=1477638095996&b&l=1920","copyright":"© Copyright TeckelMedical","type":1}],"questionType":0,"descriptionLarge":"Zona da pele avermelhada, com manchas e/ou borbulhas, geralmente irritada.","descriptionExtended":"Zona da pele avermelhada, com manchas e/ou borbulhas, geralmente irritada.","hasDescriptionExtended":true,"categoryIdList":[],"propertyValueList":[{"propertyId":"9732a98d-86c1-4df9-9522-bc479417e25d","name":"CID10 +Genéricos","value":"R21"},{"propertyId":"ea24aba3-468d-42ba-8cf1-c95d1322aee6","name":"CID9 + Genérico","value":"782.1"},"statementId":"d5f8e344-3c7a-491f-8f67-5e6901c4dc6b","positiveProbability":1.0,"conclusionId":"e61a5a5b-2587-48ee-af32-49331f659810","lastEdited":1522923311633,"isActive":true,"obligatory":false},{"statement":{"statementId":"37","description":"Sua pele coça?","descriptionShort":"Coceira na pele","images":["https://api.mediktor.com/backoffice/downloads/File.Download?userId=04c35e41-6a8b-4541-44a3-cc20230ebdff&type=media&id=f39068f9-d8a6-4d07-842f-2e1216550c77&d=1563813028540&b&l=1920"],"mediaFileList":[{"mediaURL":"https://api.mediktor.com/backoffice/downloads/File.Download?userId=04c35e41-6a8b-4541-44a3-cc20230ebdff&type=media&id=f39068f9-d8a6-4d07-842f-2e1216550c77&d=1563813028540&b&l=1920","copyright":"© Copyright TeckelMedical","description":"Comichão na pele","type":1}],"questionType":1,"descriptionLarge":"<p>Você sente formigamento e/ou coceira em todo o corpo ou em parte dele, e tem vontade de coçar para aliviar a sensação.</p>","descriptionExtended":"<p>Você sente formigamento e/ou coceira em todo o corpo ou em parte dele, e tem vontade de coçar para aliviar a sensação.</p>","hasDescriptionExtended":true,"categoryIdList":[],"propertyValueList":[{"propertyId":"9732a98d-86c1-4df9-9522-bc479417e25d","name":"CID10 +Genéricos","value":"L29.8"},{"propertyId":"ea24aba3-468d-42ba-8cf1-c95d1322aee6","name":"CID9 + Genérico","value":"698.8"},{"propertyId":"b0c0d503-cc2a-4416-a53c-e10f465d4bf9","name":"CID9 revisado","value":"b0c0d503-cc2a-4416-a53c-e10f465d4bf9:reviewed"},{"propertyId":"85c59095-eefe-469e-a6c4-faa7bf67d6a1","name":"CID10 revisado","value":"85c59095-eefe-469e-a6c4-faa7bf67d6a1:reviewed"},{"propertyId":"b4884c54-c88f-42f8-bf3c-adaa2e52f481","name":"CID9 + Específico","value":"698.0"},{"propertyId":"4a637756-3fd4-419b-9c84-31075135d8a3","name":"ICD11","value":"ME65.1"},{"propertyId":"1ccc2416-38f7-484c-967a-78dcf1f9bd12","name":"CID10 +Específicos","value":"L29.0"},{"propertyId":"f29c2d86-81fb-4ece-8375-bc1d89545af6","name":"CID11 revisado","value":"f29c2d86-81fb-4ece-8375-bc1d89545af6:reviewed"},{"propertyId":"cb6e1fc1-a673-4eab-8dec-4a483a473818","name":"SNOMED","value":"418363000"},{"propertyId":"b811b9b7-2aba-422b-9794-ae4633c837d9","name":"SNOMED revisado","value":"b811b9b7-2aba-422b-9794-ae4633c837d9:reviewed"}]},"statementId":"37","positiveProbability":0.45,"conclusionId":"e61a5a5b-2587-48ee-af32-49331f659810","lastEdited":1500999357637,"isActive":true,"obligatory":false},{"statement":{"statementId":"91","description":"Você teve febre ou se sentiu febril?","descriptionShort":"Febre / Sensação de febre","images":["https://api.mediktor.com/backoffice/downloads/File.Download?userId=04c35e41-6a8b-4541-44a3-cc20230ebdff&type=media&id=5f620ae9-80e5-4a46-bb29-189aa45b029d&d=1604063802270&b&l=1920"],"mediaFileList":[{"mediaURL":"https://api.mediktor.com/backoffice/downloads/File.Download?userId=04c35e41-6a8b-4541-44a3-cc20230ebdff&type=media&id=5f620ae9-80e5-4a46-bb29-189aa45b029d&d=1604063802270&b&l=1920","copyright":"© Copyright TeckelMedical","type":1}],"questionType":0,"descriptionLarge":"<p>Aumento da temperatura corporal. Quando aumenta alguns décimos acima de 37ºC é chamada de febrícula e quando ultrapassa 38ºC já é considerada febre. A pele geralmente está quente ao toque e pode ser acompanhada de outros sintomas como fraqueza, dores musculares, dores nas articulações, etc.</p>","descriptionExtended":"<p>Aumento da temperatura corporal. Quando aumenta alguns décimos acima de 37ºC é chamada de febrícula e quando ultrapassa 38ºC já é considerada febre. A pele geralmente está quente ao toque e pode ser acompanhada de outros sintomas como fraqueza, dores musculares, dores nas articulações, etc.</p>","hasDescriptionExtended":true,"categoryIdList":[],"propertyValueList":[{"propertyId":"dd165ff4-e848-4b3e-b7bb-cec77117b8a1","name":"CID9","value":"780.6"},{"propertyId":"b0c0d503-cc2a-4416-a53c-e10f465d4bf9","name":"CID9 revisado","value":"b0c0d503-cc2a-4416-a53c-e10f465d4bf9:reviewed"},{"propertyId":"85c59095-eefe-469e-a6c4-faa7bf67d6a1","name":"CID10 revisado","value":"85c59095-eefe-469e-a6c4-faa7bf67d6a1:reviewed"},{"propertyId":"4a637756-3fd4-419b-9c84-31075135d8a3","name":"ICD11","value":"MG26"},{"propertyId":"05c21681-3ff1-4c8c-bb0a-beba62984b6d","name":"CID10","value":"R50.9"},{"propertyId":"f29c2d86-81fb-4ece-8375-bc1d89545af6","name":"CID11 revisado","value":"f29c2d86-81fb-4ece-8375-bc1d89545af6:reviewed"},{"propertyId":"cb6e1fc1-a673-4eab-8dec-4a483a473818","name":"SNOMED","value":"386661006"},{"propertyId":"b811b9b7-2aba-422b-9794-ae4633c837d9","name":"SNOMED revisado","value":"b811b9b7-2aba-422b-9794-ae4633c837d9:reviewed"}]},"statementId":"91","positiveProbability":0.4,"conclusionId":"e61a5a5b-2587-48ee-af32-49331f659810","lastEdited":1570016497485,"isActive":true,"obligatory":false},{"statement":{"statementId":"p10092a","description":"Você tem irritação/infamação da faringe?","descriptionShort":"Irritação/Inflamação na faringe","images":["https://api.mediktor.com/backoffice/downloads/File.Download?userId=04c35e41-6a8b-4541-44a3-cc20230ebdff&type=media&id=9026d2c1-fb12-4bb3-bd30-d6c7dcdd482a&d=1605264518227&b&l=1920","https://api.mediktor.com/backoffice/downloads/File.Download?userId=04c35e41-6a8b-4541-44a3-cc20230ebdff&type=media&id=8b5a7c25-acbd-45d3-a417-cffcdb8476dc&d=1477779428028&b&l=1920"],"mediaFileList":[{"mediaURL":"https://api.mediktor.com/backoffice/downloads/File.Download?userId=04c35e41-6a8b-4541-44a3-cc20230ebdff&type=media&id=9026d2c1-fb12-4bb3-bd30-d6c7dcdd482a&d=1605264518227&b&l=1920","copyright":"© Copyright TeckelMedical","type":1},{"mediaURL":"https://api.mediktor.com/backoffice/downloads/File.Download?userId=04c35e41-6a8b-4541-44a3-cc20230ebdff&type=media&id=8b5a7c25-acbd-45d3-a417-cffcdb8476dc&d=1477779428028&b&l=1920","copyright":"© Copyright TeckelMedical","type":1}],"questionType":0,"descriptionLarge":"Por exemplo, como quando você está resfriado e tem dor de garganta e dificuldade para engolir.","descriptionExtended":"Por exemplo, como quando você está resfriado e tem dor de garganta e dificuldade para engolir.","hasDescriptionExtended":true,"categoryIdList":[],"propertyValueList":[{"propertyId":"dd165ff4-e848-4b3e-b7bb-cec77117b8a1","name":"CID9","value":"462"},{"propertyId":"b0c0d503-cc2a-4416-a53c-e10f465d4bf9","name":"CID9 revisado","value":"b0c0d503-cc2a-4416-a53c-e10f465d4bf9:reviewed"},{"propertyId":"85c59095-eefe-469e-a6c4-faa7bf67d6a1","name":"CID10 revisado","value":"85c59095-eefe-469e-a6c4-faa7bf67d6a1:reviewed"},{"propertyId":"4a637756-3fd4-419b-9c84-31075135d8a3","name":"ICD11","value":"CA02.Z"},{"propertyId":"05c21681-3ff1-4c8c-bb0a-beba62984b6d","name":"CID10","value":"J02.9"},{"propertyId":"f29c2d86-81fb-4ece-8375-bc1d89545af6","name":"CID11 revisado","value":"f29c2d86-81fb-4ece-8375-bc1d89545af6:reviewed"},{"propertyId":"cb6e1fc1-a673-4eab-8dec-4a483a473818","name":"SNOMED","value":"405737000"},{"propertyId":"b811b9b7-2aba-422b-9794-ae4633c837d9","name":"SNOMED revisado","value":"b811b9b7-2aba-422b-9794-ae4633c837d9:reviewed"}]},"statementId":"p10092a","positiveProbability":0.35,"conclusionId":"e61a5a5b-2587-48ee-af32-49331f659810","lastEdited":1559730569538,"isActive":true,"obligatory":false}],"triggeringFactors":[{"statement":{"statementId":"p2031","description":"Você acabou de se recuperar de uma infecção viral?","descriptionShort":"Infecção viral recente","images":[],"questionType":0,"descriptionLarge":"Infecção recente causada por um vírus.","descriptionExtended":"Infecção recente causada por um vírus.","hasDescriptionExtended":true,"categoryIdList":[],"propertyValueList":[{"propertyId":"dd165ff4-e848-4b3e-b7bb-cec77117b8a1","name":"CID9","value":"790.8"},{"propertyId":"b0c0d503-cc2a-4416-a53c-e10f465d4bf9","name":"CID9 revisado","value":"b0c0d503-cc2a-4416-a53c-e10f465d4bf9:reviewed"},{"propertyId":"85c59095-eefe-469e-a6c4-faa7bf67d6a1","name":"CID10 revisado","value":"85c59095-eefe-469e-a6c4-faa7bf67d6a1:reviewed"},{"propertyId":"4a637756-3fd4-419b-9c84-31075135d8a3","name":"ICD11","value":"1D9Z"},{"propertyId":"05c21681-3ff1-4c8c-bb0a-beba62984b6d","name":"CID10","value":"B34.9"},{"propertyId":"f29c2d86-81fb-4ece-8375-bc1d89545af6","name":"CID11 revisado","value":"f29c2d86-81fb-4ece-8375-bc1d89545af6:reviewed"},{"propertyId":"cb6e1fc1-a673-4eab-8dec-4a483a473818","name":"SNOMED","value":"34014006"},{"propertyId":"b811b9b7-2aba-422b-9794-ae4633c837d9","name":"SNOMED revisado","value":"b811b9b7-2aba-422b-9794-ae4633c837d9:reviewed"}]},"statementId":"p2031","positiveProbability":0.7,"conclusionId":"e61a5a5b-2587-48ee-af32-49331f659810","lastEdited":1497437641406,"isActive":true,"obligatory":false}],"level":0,"urgency":5,"urgencyEnum":0,"service":6,"common":false}}
Related
Sendkeys envia apenas 1 caracter da palavra escolhida
Estou tentando enviar um texto para um elemento html no WhatsappWeb, este elemento é o campo onde o usuário digita sua mensagem. Porém, quando eu tento adicionar um texto a este campo usando o método "send_keys" o campo só recebe o primeiro caracter da minha palavra enviada. EX: palavra = "ola" area_texto.send_keys(palavra) campo de mensagem do WhatsApp recebe: "o" Meu código: mensagem = driver.find_element( By.XPATH, "///html/body/div[1]/div/div/div[4]/div/footer/div[1]/div/span[2]/div/div[2]/div[1]/div/div[1]" ) area_msg = driver.find_element( By.XPATH, "//div[#title='Mensagem']"conversation-compose-box-input ) if(mensagem.text == "1"): area_msg.click() area_msg.clear() area_msg.send_keys("Esse é o teste numero 1?") area_msg.send_keys(Keys.RETURN)
Python script in notepad++ for replace with a increment number
I try to do a python script in notepad++ to replace a simbol with the same symbol + increment number, like a list # -*- coding: utf-8 -*- import os search_string = '▶️ ' final_str = '.-' i = 0 for root, dirs, files in os.walk('C:\\temp\\prueba'): # take care of double backslash like c:\\temp\\dir1\\ for file in files: fname, ext = os.path.splitext(file) if ext == '.txt': i+=1 full_path = os.path.join(root, file) with open(full_path) as f: s = f.read() s = s.replace(search_string, search_string + str(i) + final_str) with open(full_path, "w") as f: f.write(s) It doesnt work fine, it replace text with ▶️ 1.- in all coincidences but not increment the number. How can i solve this? one mate of here says that i only increment number each file but i need to increment number each line that have coincidence and reset each file. Thank you very much. Best Regards.
I have tried to modify your code as follow: # -*- coding: utf-8 -*- import os search_string = '▶️ ' final_str = '.-' i = 0 for root, dirs, files in os.walk('C:\\temp\\prueba'): for file in files: fname, ext = os.path.splitext(file) if ext == '.txt': i = 0 full_path = os.path.join(root, file) with open(full_path, encoding="utf8") as f: s = f.read() pos = 0 new_s = "" while pos >=0: i += 1 # search first occurrence of '▶️ ' pos = s.find(search_string) if pos >= 0: # '▶️ ' found in position pos s_modified = s[:pos + 3] # remove analyzed string s = s[pos+3:] # substitute with new '▶️ 1-.' or '▶️ 2-.' etc. s_modified = s_modified.replace(search_string, search_string + str(i) + final_str, 1) new_s += s_modified else: new_s += s with open(full_path, "w") as f: f.write(new_s) I hope it is useful. With the file at this link the output is the following file: ¿Como encontrar uma pessoa pela foto nas redes sociais? <b>¿Como encontrar uma pessoa pela foto nas redes sociais?. </b> <b>Outra alternativa para achar uma pessoa pela foto no Facebook é usando o Google Imagens.</b> O buscador permite fazer uma busca reversa a partir da imagem da pessoa que você está procurando. Depois de buscar, a plataforma então mostra resultados semelhantes, o que pode incluir os perfis de redes sociais da pessoa. <h2>Melhores respostas: ¿Como encontrar uma pessoa pela foto nas redes sociais?</h2> ▶️ 1.-¿Como achar uma pessoa pela foto pelo celular? <b>Acesse o.</b> Google. e, no canto direito do campo de busca, toque no ícone de câmera;. Com isso, você acessará o. Google. Lens. Por fim, basta aguardar o processamento e explorar os resultados que aparecerão na página. ▶️ 2.-¿Como faço para encontrar uma pessoa no Google pela foto? <b>Com o.</b> Google Fotos. (Android l iOS) aberto, localize a imagem da. pessoa. ;. Deslize a página para cima e, na seção “Pesquisar dentro desta. foto. ”, clique no comando “Pesquisar”;. Os resultados aparecerão logo em seguida. ▶️ 3.-¿Como eu faço para encontrar uma pessoa? <b>Rastreie a pessoa através das redes sociais.</b> Páginas como Facebook, Instagram e Twitter permitem que você procure pelos membros com base em nome, localização, locais frequentados ou interesses. Digite o nome completo da pessoa e a última cidade conhecida dela na barra de busca da rede preferida. ▶️ 4.-¿Como encontrar uma pessoa que eu não sei o nome? <b>Utilize sites de redes sociais.</b> Sites como MySpace e Facebook oferecem várias maneiras de encontrar pessoas sem saber um sobrenome. Quando encontrar a pessoa, poderá contatá-la através do site e trocar números de telefone ou marcar um encontro. ▶️ 5.-¿Quem é a pessoa da foto? <b>Veja abaixo como encontrar uma pessoa só pela foto usando o TinEye: Abra o navegador e acesse tineye.</b>com; Insira o link da imagem ou clique em "Envio" para fazer o upload; Aguarde para que o site mostre as imagens correspondentes e outras informações. ▶️ 6.-¿Como saber o Instagram de uma pessoa? <b>Como nós já mencionamos anteriormente, a maneira mais fácil de encontrar pessoas no Instagram é sabendo seu nome de usuário.</b> Assim, basta digitar no campo de busca do app. Caso você não tenha como saber esse detalhe, é sempre possível procurar pelo nome da pessoa. ▶️ 7.-¿Como encontrar uma pessoa por foto no Facebook? <b>Outra alternativa para achar uma pessoa pela foto no Facebook é usando o Google Imagens.</b> O buscador permite fazer uma busca reversa a partir da imagem da pessoa que você está procurando. Depois de buscar, a plataforma então mostra resultados semelhantes, o que pode incluir os perfis de redes sociais da pessoa. ▶️ 8.-¿Como saber todas as redes sociais de uma pessoa? <b>Pipl.</b>com: busca a "pegada" online de um indivíduo e pode identificar várias contas de redes sociais, registros públicos e informações de contato. Rapportive: esse plug-in para o Gmail oferece aos usuários um perfil dos seus contatos, incluindo contas em redes sociais, localização e emprego. ▶️ 9.-¿Como saber todos os dados de uma pessoa? <b>Ferramentas de busca como o Google ou o Bing são excelentes opções para pesquisar o que quiser de graça.</b> Faça uma pesquisa simples incluindo o nome da pessoa e a cidade e/ou estado em que ela morava ou onde você a viu pela última vez. Não exagere nos termos de busca. Coloque aspas em volta do nome que está pesquisando. ▶️ 10.-¿Como descobrir o WhatsApp de uma pessoa só pelo nome? <b>O AcheCerto é um site, onde você pode consultar o telefone de alguém a partir do nome, endereço ou CEP.</b> Também é possível encontrar telefone pelo nome completo. O serviço está disponível para todos os estados brasileiros. ▶️ 11.-¿Como eu faço para encontrar uma pessoa pela internet? <b>Namechk.</b> Caso você tenha o nome de usuário de alguma rede social (ex.: Youtube, Twitter, Instagram, entre outros) da. pessoa. que você busca, o Namechk pode ajudar a encontrá-la. Findface. Busca reversa de imagem - Google. ▶️ 12.-¿Como localizar uma pessoa grátis? <b>Free Phone Tracker.</b> Este é um site gratuito para saber a localização de alguém pelo telefone. GPS Rastreador de celular. O aplicativo GPS Rastreador de celular é gratuito e está disponível nas lojas da Google Play e Apple Store para Android e iPhone. wSpy Pro. ▶️ 13.-¿Como fazer para encontrar uma pessoa no Facebook? <b>Toque em no canto superior direito do.</b> Facebook. . Insira o nome do seu amigo na barra de pesquisa e toque em ou em no canto inferior direito. Toque em. PESSOAS. na parte superior. Toque para filtrar por Cidade, Educação, Trabalho ou Amigos de amigos. ▶️ 14.-¿Como encontrar uma pessoa que não tem rede social? <b>Quando parecer que alguém não tenha perfil nas redes sociais, procure direito — Google, Facebook, Tumblr e LinkedIn são apenas alguns exemplos de onde procurar.</b> ▶️ 15.-¿Como pesquisar sobre a vida de uma pessoa no Google? <b>Digite o nome de quem procura na caixa de pesquisa do Google.</b> Coloque o nome de quem deseja procurar entre aspas ( ” ” ), Dessa forma o Google procura os termos exatamente como estão digitados entre as aspas. Refina sua busca e selecione as opções de sua localização e da página. ▶️ 16.-¿Como saber se a foto de uma pessoa é fake? <b>Baixe e instale o aplicativo.</b> Fake. Image Detector nas lojas de aplicativos do Chrome ou Firefox. Abra o aplicativo e selecione uma das duas opções: Escolha na galeria - Isso permite o acesso às imagens salvas em seu celular. ▶️ 17.-¿Como se chama a foto do rosto? <b>Em retrato, este é o plano em que o corpo aparece por inteiro, dos pés à cabeça.</b> O protagonista da foto ocupa, portanto, todo o enquadramento da foto, sendo o ponto de interesse da captura. A fotografia pode mostrar a pessoa mais longe ou mais perto, mas sem cortar os pés ou a cabeça. ▶️ 18.-¿Quem tirou a foto? <b>A fotografia tirada pelo francês Joseph Nicéphore Niépce (1765 – 1833), em 1826, é considerada a primeira da história.</b> Para obter esse resultado, o inventor posicionou uma folha de estanho coberta de betume durante oito horas seguidas na frente de uma janela. ▶️ 19.-¿Como achar o Instagram de uma pessoa pela foto no celular? <b>Acesse images.</b>google.com.br usando o navegador de internet. Você verá o campo de busca do Google. Clique no botão de câmera do lado direito do campo de busca. Ele vai permitir a pesquisa por imagem. ▶️ 20.-¿Como achar uma pessoa no Instagram pelo número do celular 2022? <b>Como achar alguém no instagram pelo número Toque nos três traços do canto superior lado direito.</b> Em seguida, vá em “Configurações“. Vá em “Conta” e em seguida na opção “Sincronização de contatos“. Marque a opção “Conectar contatos“. ▶️ 21.-¿Como ver o Instagram de uma pessoa pelo Google? <b>Por exemplo, caso esteja procurando o.</b> Instagram. da Beyonce, pesquise por ″. Instagram. oficial da Beyonce″. Clique no link fornecido. pela. pesquisa para acessar o perfil da. pessoa. procurada. ▶️ 22.-¿Como achar um contato do Whatsapp no Instagram? <b>Uma vez que você tenha o número da pessoa que deseja encontrar salvo, o aplicativo irá sincronizar seus contatos, permitindo que você localize um usuário através do número de celular dele.</b> Sem o número do celular da pessoa salvo, não é possível localizar o perfil dela no Instagram. ▶️ 23.-¿Como encontrar uma pessoa apenas com o primeiro nome? <b>Comece a sua busca online em um site de pesquisa de pessoas.</b> Muitos pedem o primeiro nome e o sobrenome, mas alguns, como o People Lookup, permitem que você procure apenas pelo primeiro e por uma localização. Se você não sabe onde ela mora, use o local onde a conheceu. ▶️ 24.-¿Como achar uma foto no Instagram? <b>Toque em na parte inferior para acessar.</b> Pesquisar. e Explorar. Na barra de. pesquisa. na parte superior, toque em. Pesquisar. . Digite o nome da localização e toque no botão de. pesquisa. no canto inferior direito do teclado.
How can I obtain all customers complaint from a website?
I want to scraping all customers complaint from https://www.reclameaqui.com.br/empresa/santander/lista-reclamacoes/?status=NOT_ANSWERED My code: class ComplaintScraper(CrawlSpider): name = "ComplaintScraper" allowed_domains = ["https://www.reclameaqui.com.br"] start_urls = [ "https://www.reclameaqui.com.br/empresa/santander/lista-reclamacoes/?status=NOT_ANSWERED", #Only complaints not answered ] ''' LinkExtractor: An object which defines how links will be extracted from each crawled page. ''' rules = ( Rule(LinkExtractor(restrict_css = '#__next > div.sc-1mzw716-0.bbugAk > div.sc-1mzw716-1.dAjixN > div.wydd4i-0.jaTnlr > main > ' + 'section.wydd4i-5.bDtuKO > div.sc-gJpXkD.ebMJNx.xh9b9g-0.jjQFrx > ' + 'div.sc-1sm4sxr-0.eFXbXn > div:nth-child(1) > a'), callback = "parse_complaint", follow=True), ) def start_requests(self): for url in self.start_urls: yield SplashRequest(url, self.parse_complaint, endpoint='render.html', args={'wait': 0.5}) def parse_complaint(self, response): print("Hi", response.url) but, I'm not able to see the first n links in my console, what would be: https://www.reclameaqui.com.br/santander/desacordo-comercial_EDEwdRrqoHSC5Win/ https://www.reclameaqui.com.br/santander/estorno-de-seguro-residencial_RsOgQiG151B-n_x8/ https://www.reclameaqui.com.br/santander/do-pix_wylD_ba-c_LBOGQ2/ https://www.reclameaqui.com.br/santander/veiculo-quitado_AP-e15Kmdo0zhlqd/ ... Where am I wrong? How can I obtain all customers complaint from this list https://www.reclameaqui.com.br/empresa/santander/lista-reclamacoes/?status=NOT_ANSWERED ?
I was able to scrape them fine without using splash... import scrapy class ComplaintScraper(scrapy.Spider): name = "ComplaintScraper" def start_requests(self): base = "https://www.reclameaqui.com.br/empresa/santander/lista-reclamacoes/?status=NOT_ANSWERED" yield scrapy.Request(base, self.parse_complaint) for i in range(263): page = "https://www.reclameaqui.com.br/empresa/santander/lista-reclamacoes/?pagina=%d&status=NOT_ANSWERED" % i yield scrapy.Request(page, self.parse_complaint) def parse_complaint(self, response): for row in response.xpath('//div[contains(#class,"bJdtis")]'): text = row.xpath(".//p/text()").get() title = row.xpath("./a/h4/text()").get() link = row.xpath("./a/#href").get() yield {"text": text, "title": title, "link": link} yield scrapy.Request(response.urljoin(link), callback=self.parse_page, dont_filter=True) def parse_page(self, response): company = response.xpath("//a[#data-testid='company-page-link']//text()").get() date_created = response.xpath("//span[#data-testid='complaint-creation-date']//text()").get() complaint_id = response.xpath("//span[#data-testid='complaint-id']//text()").getall() description = response.xpath("//p[#data-testid='complaint-description']//text()").getall() yield { "company":company, "date_created":date_created, "complaint_id":complaint_id, "description":description, } output: json [ {"text": "J\u00e1 cansei de receber liga\u00e7\u00f5es do banco Santander naquela liga\u00e7\u00e3o de rob\u00f4 dizendo que minha margem para empr\u00e9stimo aumentou. Isso j", "title": "Santander me liga todos os dias em grava\u00e7\u00e3o autom\u00e1tica oferecendo empr\u00e9stimo", "link": "/santander/santander-me-liga-todos-os-dias-em-gravacao-automatica-oferecendo-emprestim_c910djaXUkL0vqC1/"}, {"text": "Cancelei meu cart\u00e3o de cr\u00e9dito e pedi um cart\u00e3o d\u00e9bito. V\u00e1rios meses atr\u00e1s, fui ao banco desbloquear meu cart\u00e3o no caixa eletr\u00f4nic", "title": "Cart\u00e3o atendimento", "link": "/santander/cartao-atendimento_4tSDcLpU_qCr9IZ0/"}, {"text": "Ol\u00e1, eu fiz um acordo pro meu pai pelo Serasa de uma d\u00edvida com o Santander, o acordo foi feito em 10 parcelas, est\u00e1vamos pagando ", "title": "Acordo Quebrado", "link": "/santander/acordo-quebrado_PNN55c7K25I0x4xl/"}, {"text": "Realizei um consorcio para aquisi\u00e7\u00e3o de uma moto no Banco Santander, passei a marca e o modelo para a gerente e ela me incluiu em ", "title": "Cons\u00f3rcio para aquisi\u00e7\u00e3o de moto.", "link": "/santander/consorcio-para-aquisicao-de-moto_rK0IZcJn_VCAHu9Y/"}, {"text": "Tentei fazer TED e por motivo de seguran\u00e7a pediram pra ligar no 40043535. Liguei. Me transferiram para outro setor protocolo 20896", "title": "Falta de respeito", "link": "/santander/falta-de-respeito_fUS4AzqqAGiZx0SS/"}, {"text": "Venho por meio deste formalizar minha reclama\u00e7\u00e3o e total insatisfa\u00e7\u00e3o com os servi\u00e7os prestados pelo banco Santander, desde o dia ", "title": "Sem acesso aos extratos banc\u00e1rios ", "link": "/santander/sem-acesso-aos-extratos-bancarios_jVmU9hRwxqlhaibo/"}, {"text": "Estou a dois dias tentando fazer uma simples altera\u00e7\u00e3o da data de vencimento da minha fatura e n\u00e3o consigo. J\u00e1 tentei pelo aplicat", "title": "N\u00e3o consigo alterar a data de vencimento da minha fatura!!!!!!!!", "link": "/santander/nao-consigo-alterar-a-data-de-vencimento-da-minha-fatura_Qi784WgI_oNBAiNP/"}, {"text": "Banco Santander n\u00e3o est\u00e1 cumprindo com a lei. Eu como consumidor desta ag\u00eancia, venho sofrendo com a falta de comunica\u00e7\u00e3o. D", "title": "Redu\u00e7\u00e3o de limite sem comunica\u00e7\u00e3o ", "link": "/santander/reducao-de-limite-sem-comunicacao_S-7m437JuzTffUFo/"}, {"text": "Pessoal, venho atrav\u00e9s deste canal relatar minha indigina\u00e7\u00e3o mediante um acontecimento que ocorreu comigo na sexta feira dia 21/10", "title": "Sequestro rel\u00e2mpago e transa\u00e7\u00f5es banc\u00e1rias mediante coa\u00e7\u00e3o com arma de fogo", "link": "/santander/sequestro-relampago-e-transacoes-bancarias-mediante-coacao-com-arma-de-fogo_pclnXGFHD-WCofjT/"}, {"text": "Solicitei o cart\u00e3o AMEX Platinun com isen\u00e7\u00e3o vital\u00edcia da anuidade. No dia 12/10 recebi SMS informando uma senha de 4 d\u00edgitos para", "title": "AMEX - Imposs\u00edvel falar com qualquer pessoa do Santander, ou conseguir qualquer informa\u00e7\u00e3o", "link": "/santander/amex-impossivel-falar-com-qualquer-pessoa-do-santander-ou-conseguir-qual_5no5tbszf81asmVv/"}, {"company": "Banco Santander", "date_created": "26/10/2022 \u00e0s 16:55", "complaint_id": ["ID:", " 152486909"], "description": ["Banco Santander n\u00e3o est\u00e1 cumprindo com a lei. Eu como consumidor desta ag\u00eancia, venho sofrendo com a falta de comunica\u00e7\u00e3o. ", "Dessa vez agora sem nenhum aviso pr\u00e9vio, tiraram meu cheque especial R$ 800,00. ", "Onde sempre cumpri com a reposi\u00e7\u00e3o ou pagamento de juros das vezes que precisei utilizar. ", "Entrei no meu app e informa que n\u00e3o tenho mais o servi\u00e7o dispon\u00edvel.", "E vai me desestruturar financeiramente. Por que irei receber meu sal\u00e1rio e n\u00e3o vai retornar como cr\u00e9dito de cheque especial. ", "Ainda mais sem comunica\u00e7\u00e3o previs\u00e3o nenhuma. ", "Se soubesse, ou se o banco informasse que iria tirar o servi\u00e7o eu n\u00e3o teria nem utilizado, para n\u00e3o comprometer meu sal\u00e1rio m\u00eas que vem.", "Isso fere meus direitos de consumidor.", "J\u00e1 me informei no procon: ", "RECURSO INOMINADO. A\u00c7\u00c3O DE INDENIZA\u00c7\u00c3O POR DANOS MORAIS. CANCELAMENTO DE LIMITE DE CR\u00c9DITO EM CONTA CORRENTE. AUS\u00caNCIA DE AVISO PR\u00c9VIO. FALHA NA PRESTA\u00c7\u00c3O DOS SERVI\u00c7OS. DANO MORAL CARACTERIZADO. SENTEN\u00c7A DE PROCED\u00caNCIA. RECURSO DO AUTOR PELA MAJORA\u00c7\u00c3O DOS DANOS MORAIS. INDENIZAT\u00d3RIO ADEQUADO \u00c0SQUANTUM PARTICULARIDADES DO CASO CONCRETO. PRINC\u00cdPIOS DA PROPORCIONALIDADE E RAZOABILIDADE IGUALMENTE ATENDIDOS. MANUTEN\u00c7\u00c3O DA SENTEN\u00c7A PELOS PR\u00d3PRIOS FUNDAMENTOS. RECURSO CONHECIDO E DESPROVIDO...", "Sem contar que , a cada dia que passa est\u00e3o cobrando juros em cima do que utilizei."]}, {"company": "Banco Santander", "date_created": "26/10/2022 \u00e0s 17:22", "complaint_id": ["ID:", " 152488685"], "description": ["Cancelei meu cart\u00e3o de cr\u00e9dito e pedi um cart\u00e3o d\u00e9bito. V\u00e1rios meses atr\u00e1s, fui ao banco desbloquear meu cart\u00e3o no caixa eletr\u00f4nico n\u00e3o consigo, aparece uma mensagem, falar como um dos atendentes. tentei a primeira vez ia demorar para ser atendido, na alega\u00e7\u00e3o que tinha de esperar.", "Fui hoje novamente peguei a senha 12:54h e at\u00e9 as 13: 40h n\u00e3o fui atendido, liguei no 0800 para atendimento n\u00e3o fui atendido pois pede uma senha de 6 d\u00edgitos e n\u00e3o possuo essa senha. Ent\u00e3o n\u00e3o consegui nada, a grava\u00e7\u00e3o me agradece e desliga. N\u00e3o consigo falar com ningu\u00e9m. preciso desbloquear o cart\u00e3o para pagar uma pend\u00eancia e n\u00e3o consigo. E para finalizar est\u00e3o me ligando para uma empresa em um n\u00famero que n\u00e3o foi cadastrado no sistema do banco. (Suzana). Peguei o n\u00famero do zap cadastrei no meu telefone, aparece uma mensagem, n\u00e3o encontramos manifesta\u00e7\u00e3o... \" Se precisar estarei aqui at\u00e9 a pr\u00f3xima\"aparece uma carinha sorrindo e mais nada. Preciso de uma solu\u00e7\u00e3o."]}, {"company": "Banco Santander", "date_created": "26/10/2022 \u00e0s 17:10", "complaint_id": ["ID:", " 152487895"], "description": ["Venho por meio deste formalizar minha reclama\u00e7\u00e3o e total insatisfa\u00e7\u00e3o com os servi\u00e7os prestados pelo banco Santander, desde o dia 06/10 solicito os extratos banc\u00e1rios da minha conta jur\u00eddica na ag\u00eancia Ag 1572", "Cc 13001702-3 e n\u00e3o consigo o gerente alega que meu CPF est\u00e1 bloqueado na receita federal por conta de declara\u00e7\u00e3o IR e que eu tenho que regularizar a situa\u00e7\u00e3o do meu CPF para conseguir acesso a conta, por\u00e9m eles n\u00e3o podem me privar das minhas informa\u00e7\u00f5es. Pe\u00e7o que venha o quanto resolvam o quanto antes est\u00e1 situa\u00e7\u00e3o o quanto antes, pois preciso das informa\u00e7\u00f5es para fins judiciais "]}, {"company": "Banco Santander", "date_created": "26/10/2022 \u00e0s 16:40", "complaint_id": ["ID:", " 152485959"], "description": ["Solicitei o cart\u00e3o AMEX Platinun com isen\u00e7\u00e3o vital\u00edcia da anuidade. No dia 12/10 recebi SMS informando uma senha de 4 d\u00edgitos para o cart\u00e3o emitido com final 8234, mas at\u00e9 o momento n\u00e3o recebi o cart\u00e3o. como j\u00e1 se passaram duas semanas do recebimento da senha de 4 d\u00edgitos enviada por SMS, gostaria de saber se o cart\u00e3o realmente foi enviado ou se pode ter sido extraviado.", "Tentei contato por todos os canais de comunica\u00e7\u00e3o que encontrei (4004-3535, whatsapp 11 4004-3535, chat e reclama\u00e7\u00e3o via site), procurei o telefone direto de v\u00e1rias ag\u00eancias pelo Google e ao ligar, informam que o n\u00famero mudou para 4004-3535 e desligam automaticamente. Ao ligar no 4004-3535, pedem o CPF e uma senha de 6 d\u00edgitos, sem dar op\u00e7\u00e3o de atendimento. Ao n\u00e3o digitar a senha ou digitar a senha recebida, informa\u00e7\u00e3o que n\u00e3o \u00e9 um d\u00edgito v\u00e1lido e a liga\u00e7\u00e3o \u00e9 derrubada automaticamente. Instalei o APP Santander AMEX, entro com meu CPF, meu cadastro e cart\u00e3o s\u00e3o identificados, recebo o c\u00f3digo de valida\u00e7\u00e3o e ao inserir, novamente pedem a tal senha de 6 d\u00edgitos que n\u00e3o tenho nem cadastrei. Ao ir em uma ag\u00eancia, pedem para ligar na Central de Cart\u00f5es. \u00c9 simplesmente imposs\u00edvel conseguir falar com qualquer pessoa no Santander e n\u00e3o sei se o cart\u00e3o pode ou n\u00e3o estar na m\u00e3o de terceiros."]}, {"company": "Banco Santander", "date_created": "26/10/2022 \u00e0s 16:42", "complaint_id": ["ID:", " 152486075"], "description": ["Pessoal, venho atrav\u00e9s deste canal relatar minha indigina\u00e7\u00e3o mediante um acontecimento que ocorreu comigo na sexta feira dia 21/10 por volta das 22:00.", "Fui sequestrado e mediante coa\u00e7\u00e3o com arma de fogo foi utilizado minha conta banc\u00e1ria tanto f\u00edsica quanto jur\u00eddica para execu\u00e7\u00e3o de pix e transa\u00e7\u00f5es via cart\u00e3o de cr\u00e9dito.", "Tive um prejuizo de 6,5 mil em transa\u00e7\u00f5es via pix na conta jur\u00eddica e mais outro prejuizo de 26 mil em transa\u00e7\u00f5es via cart\u00e3o de cr\u00e9dito na conta f\u00edsica.", "Durante todo este processo fiquei em cativeiro por 18h sendo coagido e amea\u00e7ado com arma de fogo na cabe\u00e7a temendo pela minha vida.", "Ao ligar na central de relacionamento do banco santander no setor de contesta\u00e7\u00e3o e [Editado pelo Reclame Aqui]s, por incr\u00edvel que pare\u00e7a (chega a ser at\u00e9 absurdo), fui informado que n\u00e3o poderia ser ressarcido pois a quest\u00e3o se tratava de seguran\u00e7a p\u00fablica e agora eu tenho que arcar com todas as despesas que me foram subtra\u00eddas sob amea\u00e7a de morte.", "Infelizmente depois de aproximadamente 15 anos de bom relacionamento com o santander, estou sendo obrigado a abrir um processo judicial contra meu pr\u00f3prio banco, al\u00e9m de exigir uma liminar contra esses valores e tamb\u00e9m estou registrando uma queixa no BACEN (Banco Central)."]}, {"company": "Banco Santander", "date_created": "26/10/2022 \u00e0s 17:23", "complaint_id": ["ID:", " 152488791"], "description": ["J\u00e1 cansei de receber liga\u00e7\u00f5es do banco Santander naquela liga\u00e7\u00e3o de rob\u00f4 dizendo que minha margem para empr\u00e9stimo aumentou. Isso j\u00e1 se tornou um incom\u00f4do h\u00e1 muito tempo. J\u00e1 tentei inclusive completar a liga\u00e7\u00e3o e falar com o atendente dizendo que n\u00e3o tenho interesse e que eles parem de me ligar. Na maioria das x s\u00e3o mal educados. J\u00e1 bloqueei in\u00fameros telefones deles e n\u00e3o obtive sucesso. Esse banco me importuna todos os dias. Esse \u00e9 o primeiro passo para tentar resolver o assunto e se n\u00e3o adiantar vou para o procon, justi\u00e7a, enfim o que estiver no meu direito. Esse banco acha que n\u00e3o temos mais o que fazer al\u00e9m de ficar atendendo essas liga\u00e7\u00f5es rob\u00f3ticas todos os dias e n\u00e3o apenas 1 x, s\u00e3o v\u00e1rias x ao dia. E s\u00e3o 2 n\u00fameros de telefone meus que vcs tem. Querem que me tirem da lista de vcs. N\u00e3o tenho interesse em fazer nenhum empr\u00e9stimo, muito menos com o BANCO SANTANDER!!!! Parem de me ligar!!!"]}, {"company": "Banco Santander", "date_created": "26/10/2022 \u00e0s 17:21", "complaint_id": ["ID:", " 152488675"], "description": ["Ol\u00e1, eu fiz um acordo pro meu pai pelo Serasa de uma d\u00edvida com o Santander, o acordo foi feito em 10 parcelas, est\u00e1vamos pagando certinho, pagamos 5 parcelas, faltam 5 parcelas. A 6 parcela vence dia 28/11/2022, eu fui baixar o boleto para pagar, me deparei com a seguinte situa\u00e7\u00e3o: \"O acordo foi quebrado por falta de pagamento. Aguarde uma nova oferta ou fale com o credor.\"", "Por que o acordo foi quebrado sendo que est\u00e1vamos pagando certinho? Queremos terminar o pagamento desses 5 boletos que est\u00e3o faltando.", "Segue anexo alguns prints.", "Fico no aguardo."]}, {"company": "Banco Santander", "date_created": "26/10/2022 \u00e0s 17:19", "complaint_id": ["ID:", " 152488511"], "description": ["Realizei um consorcio para aquisi\u00e7\u00e3o de uma moto no Banco Santander, passei a marca e o modelo para a gerente e ela me incluiu em um grupo em andamento, assinei o termo de ades\u00e3o ciente das informa\u00e7\u00f5es descritas nele. No ato de fazer a autoriza\u00e7\u00e3o de pagamento me informaram que a cilindrada da moto que eu estava solicitando n\u00e3o era compat\u00edvel com a descrita em contrato, por\u00e9m no documento que eu assinei n\u00e3o havia nenhuma particularidade de restri\u00e7\u00e3o de cilindrada e o por isso n\u00e3o consegui pegar a minha moto. No ato da aquisi\u00e7\u00e3o eu sabia a moto que eu queria, mas agora n\u00e3o consigo compra-la por causa desta clausula no contrato que n\u00e3o recebi que estava dispon\u00edvel no portal do consorciado que foi liberado no outro dia (depois de assinado o termo de ades\u00e3o). Se eu soubesse dessa quest\u00e3o da cilindrada eu n\u00e3o teria contratado o servi\u00e7o."]}, {"company": "Banco Santander", "date_created": "26/10/2022 \u00e0s 17:15", "complaint_id": ["ID:", " 152488191"], "description": ["Tentei fazer TED e por motivo de seguran\u00e7a pediram pra ligar no 40043535. Liguei. Me transferiram para outro setor protocolo 208967222. N\u00e3o consegui. Tentei passar pra minha PROPRIA conta em outro Banco : n\u00e3o consegui !!!! Liguei no SAC~n\u00e3o adianta!!!!! como pode isso???? mais um protocolo 208967783. Tive que ir at\u00e9 Ag\u00eancia . Me ligaram 36 horas depois e agora bloquearam me app"]}, {"company": "Banco Santander", "date_created": "26/10/2022 \u00e0s 17:05", "complaint_id": ["ID:", " 152487613"], "description": ["Estou a dois dias tentando fazer uma simples altera\u00e7\u00e3o da data de vencimento da minha fatura e n\u00e3o consigo. J\u00e1 tentei pelo aplicativo milh\u00f5es de vezes e nada, tentei o atendimento pelo telefone mas o atendimento \u00e9 in\u00fatil e p\u00e9ssimo! Resolvam!!!!"]} ]
Extract name between a word and comma from text with regex
I have a thousands .txt files with a large text. I want to extract some information from these files, like some names, numbers and dates. There are fields that follow a pattern to be able to extract the information, but others do not. I attach three examples of text. The problem comes when I need to extract the name of the creator of a company and the name of that company. To extract the name of the creator, there is a pattern in the text. To extract the name of the company no. The pattern is: start with the words "ante mí:" followed by a name with last names and ending in comma. I am using the following code: # Libreria RegEx de Python. # coding=utf-8 import re f = open ('/Users/anna/PycharmProjects/extractData/DiarioOficial/aaa1381582.pdf.txt','r') mensaje = f.read() mensaje = mensaje.replace("\n","") print re.findall(r'\s ante mí,+[a-zA-Z]{6-24}\s', mensaje) But I think that the regular expression is wrong. Can someone help me? CVE 1381582 | Director: Juan Jorge Lazo Rodríguez Sitio Web: www.diarioficial.cl | Mesa Central: +562 2486 3600 Email: consultas#diarioficial.cl Dirección: Dr. Torres Boonen N°511, Providencia, Santiago, Chile. Este documento ha sido firmado electrónicamente de acuerdo con la ley N°19.799 e incluye sellado de tiempo y firma electrónica avanzada. Para verificar la autenticidad de una representación impresa del mismo, ingrese este código en el sitio web www.diarioficial.cl DIARIO OFICIAL DE LA REPUBLICA DE CHILE Ministerio del Interior y Seguridad Pública V SECCIÓN CONSTITUCIONES, MODIFICACIONES Y DISOLUCIONES DE SOCIEDADES Y COOPERATIVAS Núm. 42.031 | Viernes 13 de Abril de 2018 | Página 1 de 1 Empresas y Cooperativas CVE 1381582 EXTRACTO VALERIA RONCHERA FLORES, Notario Titular Décima Notaría Santiago, oficio Agustinas 1235, piso 2, CERTIFICO: Por escritura pública hoy ante mí: DANIEL ROLANDO CORNEJO GALLARDO, chileno, soltero, factor de comercio, con domicilio en Pueblo Hundido sin número, comuna de Rengo, Sexta Región del Libertador Bernardo OHiggins, de paso en ésta; constituyó sociedad por acciones denominada AGRÍCOLA Y TRANSPORTES SAN DANIEL SpA, nombre de fantasía SAN DANIEL SpA. Objeto Social: Objeto. La Sociedad tiene por objeto, la explotación integral del rubro agrícola, ganadero y forestal, por cuenta propia o ajena, de predios rústicos propios o ajenos, la importación, exportación, transformación y comercialización de productos agrícolas, ganaderos o forestales. En general, la realización de toda clase de negocios relacionados con el agro, la producción agropecuaria, frutícola o maderera, la compra, venta y exportación de la producción, sea la propia o ajena, servicios de embalaje, envasado, packing y de asesoría a productores, y la elaboración de alimentos, de toda clase a partir de esa producción; actuar como comisionista o mandatario, para la venta y comercio de productos agrarios; realizar inversiones en toda clase de bienes muebles o inmuebles, administrarlos y percibir sus frutos o rentas. Asimismo, el transporte de carga y/o pasajeros, en vehículos propios, arrendados o en leasing o encomendados a terceros; la representación de empresas extranjeras o nacionales de transporte y embalaje; todo lo relacionado, de cualquiera forma, en la actualidad o en el futuro, con el flete, traslado y transporte de pasajeros o bienes de toda clase y su embalaje, incluyendo las gestiones portuarias y aduaneras, en su caso. También el ejercicio de la actividad comercial en sus formas más amplias y, en especial, la compraventa, importación, exportación, distribución y comercialización de toda clase de bienes, por cuenta propia o ajena, la representación de empresas nacionales y extranjeras; y todo otro negocio o actividad conexa con el giro que acuerden los socios. Domicilio: Comuna y ciudad de Santiago, Región Metropolitana, sin perjuicio de que pueda establecer agencias, sucursales u oficinas en el resto del país o en el extranjero. Duración: Indefinida. Capital: $100.000.000.- dividido en 1.000 acciones, nominativas, de una sola serie y sin valor nominal; de las cuales el socio constituyente paga 10 acciones, equivalentes a $1.000.000.-, al contado, en efectivo, que ingresan a caja social, el saldo de 990 acciones serán pagadas en un plazo de 3 años a contar de la suscripción del presente contrato. Administración: Por accionista constituyente DANIEL ROLANDO CORNEJO GALLARDO.- Demás pactos escritura extractada. "Santiago, 9 abril 2018".
Use the pattern ([^,]*) to match everything upto a comma >>> re.findall(r'\sante mí:\s+([^,]*)', mensaje) ['DANIEL ROLANDO CORNEJO GALLARDO']
How can I get Portuguese characters in Python?
I'm working with Portuguese Language. The characters are looking weird. How can I fix this? The code: import feedparser import random # Vou definir os feeds feeds_conf = [{"feedurl": "http://pplware.sapo.pt/feed/", "linktoourpage": "http://linktopage.com/gggg/"}, {"feedurl": "http://pplware.sapo.pt/feed/", "linktoourpage": "http://linktopage.com/zzzz/"}] # Vou escolher um feed ao acaso feed_a_enviar = random.choice(feeds_conf) d = feedparser.parse(feed_a_enviar["feedurl"]) i = range(10) updates = [] for i in range(10): updates.append([{"url": feed_a_enviar["linktoourpage"], "msg": d.entries[i].summary + ", "}]) print updates The output: [[{'url': 'http://linktopage.com/zzzz/', 'msg': u'\u2026depois de instalar o sistema operativo? Apesar de ainda n\xe3o ser a vers\xe3o final (segundo o calend\xe1rio, est\xe1 hoje dispon\xedvel a vers\xe3o Beta), o Ubuntu 11.04 Natty Narwhal tem demonstrado ser um sistema operativo r\xe1pido, seguro e est\xe1vel segundo os testes que j\xe1 efectuamos. Com a adop\xe7\xe3o da interface Unity, parece-nos que o sistema \xe9 [...]<div style="text-align: center;"><img alt="" src="http://pplware.sapo.pt/wp-content/uploads/2011/03/ubuntu_natty_thumb.jpg" /></div>, '}], [{'url': 'http://linktopage.com/zzzz/', 'msg': u'A Google anunciou hoje que passou a permitir aos utilizadores partilharem recomenda\xe7\xf5es com os outros utilizadores nos resultados de pesquisa do Google. O objectivo \xe9 disponibilizar a cada utilizador os resultados mais relevantes, o mais r\xe1pido poss\xedvel mas, \xe0 semelhan\xe7a das palavras nas p\xe1ginas de Internet, a relev\xe2ncia assenta tamb\xe9m nas rela\xe7\xf5es. Recentemente, a Google [...]<div style="text-align: center;"><img alt="" src="http://pplware.sapo.pt/wp-content/uploads/2011/03/mais_1_2.jpg" /></div>, '}], [{'url': 'http://linktopage.com/zzzz/', 'msg': u'O Mac OS X tem uma particularidade que me agrada bastante: mostra ser um sistema operativo simples e at\xe9 despido de fun\xe7\xf5es, mas na verdade tem ferramentas que permitem nalguns cliques chegar a tudo o que precisamos. Um dos exemplos claros \xe9 o Automator. Seja l\xe1 o que for que pretende fazer neste sistema operativo, [...]<div style="text-align: center;"><img alt="" src="http://pplware.sapo.pt/wp-content/images2011/imagem_desktoday01_small.jpg" /></div>, '}], [{'url': 'http://linktopage.com/zzzz/', 'msg': u'Este artigo foi escrito pelo leitor Diogo Oliveira para o Pplware A barra de ferramentas do Windows Media Player n\xe3o \xe9 nada mais nada menos do que aquele mini-player que ficava alojado na barra de tarefas e que permite o controlo das m\xfasicas em reprodu\xe7\xe3o. Este mini-player estava presente na vers\xe3o 11, mas foi removido [...]<div style="text-align: center;"><img alt="" src="http://pplware.sapo.pt/wp-content/uploads/2011/03/wmp_12_1.jpg" /></div>, '}], [{'url': 'http://linktopage.com/zzzz/', 'msg': u'Nesta semana cinematogr\xe1fica, o destaque vai para a estreia de “Sucker Punch \u2013 Mundo Surreal”, uma fantasia \xe9pica de ac\xe7\xe3o que nos apresenta a imagina\xe7\xe3o f\xe9rtil de uma jovem, cujos sonhos s\xe3o a \xfanica sa\xedda para sua dif\xedcil realidade num hosp\xedcio. Destaque ainda para a estreia do thriller de terror “Perigo \xe0 Espreita”, com Jeffrey [...]<div style="text-align: center;"><img alt="" src="http://pplware.sapo.pt/wp-content/images2011/cinema117/imagem_cinema117_01.jpg" /></div>, '}], [{'url': 'http://linktopage.com/zzzz/', 'msg': u'Por Carlos Rodrigues e Jos\xe9 Afonso para o PPLWARE O Processing \xe9 uma linguagem baseada em Java que existe desde 2001 e \xe9 bastante utilizada por artistas gr\xe1ficos. Inicialmente utilizada para auxiliar no ensino do b\xe1sico da programa\xe7\xe3o, rapidamente cresceu, suportando diversas plataformas (Windows, Mac Os X, Linux) e permitindo desenvolver aplica\xe7\xf5es de forma muito [...]<div style="text-align: center;"><img alt="" src="http://pplware.sapo.pt/wp-content/uploads/2011/03/mobile_00_thumb.jpg" /></div>, '}], [{'url': 'http://linktopage.com/zzzz/', 'msg': u'Por SamC para o PPLWARE.COM As tags (ou metadados) contribu\xedram para que a experi\xeancia de utiliza\xe7\xe3o aumentasse bastante para quem utilizava formatos de m\xfasica digital como o MP3. Quando apareceram os primeiros leitores de MP3 recordo que era fant\xe1stico mostrar a algu\xe9m que no ecr\xe3 conseguia visualizar algumas informa\xe7\xf5es relativas \xe0 m\xfasica a ser reproduzida [...]<div style="text-align: center;"><img alt="" src="http://pplware.sapo.pt/wp-content/images2011/imagem_mptagthat01_small.jpg" /></div>, '}], [{'url': 'http://linktopage.com/zzzz/', 'msg': u'A menos de um m\xeas da disponibiliza\xe7\xe3o da vers\xe3o final do Ubuntu 11.04 Natty Narwhal (28 de Abril de 2011), s\xe3o muitas as novidades j\xe1 conhecidas. Ontem, no seguimento de um artigo que li sobre a possibilidade de testar aplica\xe7\xf5es para Android sem as instalar, decidi investigar se havia o mesmo \u201csistema\u201d para o Ubuntu. [...]<div style="text-align: center;"><img alt="" src="http://pplware.sapo.pt/wp-content/uploads/2011/03/usc_000_thumb.jpg" /></div>, '}], [{'url': 'http://linktopage.com/zzzz/', 'msg': u'Conhecer o nosso PC e o que por l\xe1 temos instalado \xe9 uma necessidade constante. Ao termos esta informa\xe7\xe3o conseguimos estar mais atentos a poss\xedveis problemas e nessas situa\xe7\xf5es conseguimos reagir de forma mais r\xe1pida e precisa. N\xe3o \xe9 no entanto simples ter acesso a toda a informa\xe7\xe3o de forma r\xe1pida e mesmo esta est\xe1 [...]<div style="text-align: center;"><img alt="" src="http://pplware.sapo.pt/wp-content/uploads/2011/03/SYS-Informer_1_small.jpg" /></div>, '}], [{'url': 'http://linktopage.com/zzzz/', 'msg': u'Num passado recente o Pplware lan\xe7ou aqui um artigo sobre as Drives SSDNow V100 da Kingston. Agora, a Kingston revela que foi descoberta uma poss\xedvel falha t\xe9cnica com as essas mesmas drives SSDNow V100. Uma pequena percentagem destas drives tem dado origem a um erro no arranque da BIOS n\xe3o permitindo que o computador inicie. [...]<div style="text-align: center;"><img alt="" src="http://pplware.sapo.pt/wp-content/uploads/2010/11/Kingston-SSDNow-V+100-e1288714523877.jpg" /></div>, '}]] For example, this: "vers\xe3o" should be "versão" How can I get the output in the correct encoding?
The answer is "it depends on where your output is going to": feedparser is very smart. It already decodes the input and returns decoded unicode objects to you. So you don't have to do anything. u"vers\xe3o" is already the decoded unicode object. Your issue is that, when you print the entire list, you get the representation of the list contents. It's a way for python to show you what's in the string. u'\xe3' is a representation of the correct ã unicode character - That's just the python way of showing it to you, the programmer; The correct character is stored in the unicode object. Think of "printing representations" as debugging information; If you want to show the real character, you must encode it to the output media encoding. Example: If you're showing that in a webpage, you must encode it to that webpage's encoding. If you're showing that on a terminal screen, you must encode it to that terminal's encoding. My terminal is configured to use utf-8 as encoding, so if I do: print u"vers\xe3o".encode('utf-8') That prints the correct character on my terminal. Note that you must encode to the destination device encoding. The encoding from the source is already decoded by feedparser. Brazilian Portuguese Translation A resposta é: "depende de pra onde a sua saída está indo" feedparser é muito bom. Ele decodifica a entrada e retorna objetos unicode já decodificados para você. Portanto você não precisa fazer nada. u"vers\xe3o" já é um objeto unicode decodificado. O seu problema é que, quando você imprime a lista inteira, você vê a representação do conteúdo da lista. É um jeito do python te mostrar o que está na string. u'\xe3' é uma representação do caracter unicode correto ã - Este é o jeito do python mostrar para você, programador, o conteúdo do objeto unicode. O caracter correto está lá dentro; Sugiro tratar "imprimir representações" como informações de debug; Se você quer mostrar o verdadeiro caracter, você precisa encodificar o objeto usando o encoding da mídia em que vai mostrar o caracter. Examplo: Se estiver mostrando em uma página da web, você precisa encodificar o objeto para o encoding da página; Se você estiver mostrando em uma tela de terminal, você precisa encodificar o objeto para o encoding do seu terminal. Meu terminal está configurado para usar utf-8 como encoding, então se eu fizer: print u"vers\xe3o".encode('utf-8') Isso vai imprimir o caracter correto no meu terminal. Repare que você precisa encodificar para o encoding de destino. O encoding feito na origem do feed já foi decodificado pelo feedparser.