Как декодировать данные веб-утилизации ..? - PullRequest
0 голосов
/ 04 октября 2018
import bs4
from bs4 import BeautifulSoup as soup
import requests
import json
import pandas as pd
from urllib2 import urlopen as uo
from bs4 import BeautifulSoup as soup
from urllib2 import Request as ur
import numpy as np
from pandas import ExcelWriter
url = 'https://navbharattimes.indiatimes.com/movie-masti/movie-review/village-rockstars-movie-review-in-hindi/moviereview/65997258.cms'

request=ur(url,None,headers)
uC = uo(request)
html_read = uC.read()
uC.close()
html_soup = soup(html_read, 'lxml')
review = html_soup.findAll('div', class_ = 'Normal')
review

После запуска выше кода веб-скребка я получаю следующий код вместо исходного текстового вывода. Мой вопрос, как преобразовать этот код ascii в текст.

Вот это данные webscrappper. :-

\u0930\u0947\u0923\u0941\u0915\u093e \u0935\u094d\u092f\u0935\u0939\u093e\u0930\u0947<br/>\u0915\u0939\u093e\u0928\u0940:</strong> \u0905\u0938\u092e \u0915\u0947 \u090f\u0915 \u0916\u0942\u092c\u0938\u0942\u0930\u0924 \u0917\u093e\u0902\u0935 \u092e\u0947\u0902 \u0930\u0939\u0928\u0947 \u0935\u093e\u0932\u0940 \u0927\u0941\u0928\u0942 \u0915\u094b \u092a\u0947\u0921\u093c \u092a\u0930 \u091a\u0922\u093c\u0928\u093e, \u0932\u0921\u093c\u0915\u094b\u0902 \u0915\u0947 \u0938\u093e\u0925 \u0916\u0947\u0932\u0928\u093e \u0914\u0930 \u0905\u092a\u0928\u093e \u0925\u0930\u092e\u093e\u0915\u0949\u0932 \u0915\u093e \u0917\u093f\u091f\u093e\u0930 \u092b\u094d\u0932\u0949\u0928\u094d\u091f \u0915\u0930\u0928\u093e \u0915\u093e\u092b\u0940 \u0905\u091a\u094d\u091b\u093e \u0932\u0917\u0924\u093e \u0939\u0948\u0964 \u0935\u0939 \u0918\u0930 \u0915\u0947 \u0915\u093e\u092e\u094b\u0902 \u092e\u0947\u0902 \u0905\u092a\u0928\u0940 \u0935\u093f\u0927\u0935\u093e \u092e\u093e\u0902 \u0915\u093e \u0939\u093e\u0925 \u092d\u0940 \u092c\u091f\u093e\u0924\u0940 \u0939\u0948\u0964 \u0909\u0938\u0915\u093e \u0938\u092a\u0928\u093e \u0939\u0948 \u0915\u093f \u090f\u0915 \u0926\u093f\u0928 \u0909\u0938\u0915\u0947 \u092a\u093e\u0938 \u0905\u0938\u0932 \u0917\u093f\u091f\u093e\u0930 \u0939\u094b\u0964 \u0915\u094d\u092f\u093e \u0909\u0938\u0915\u093e \u092f\u0939 \u0938\u092a\u0928\u093e \u092a\u0942\u0930\u093e \u0939\u094b \u092a\u093e\u090f\u0917\u093e

Ответы [ 2 ]

0 голосов
/ 04 октября 2018

У вас есть Unicode.Чтобы увидеть, что было найдено, попробуйте:

print review

Это выдаст что-то вроде:

रेणुका व्यवहारेकहानी: असम के एक खूबसूरत गांव में रहने वाली धुनू को पेड़ पर चढ़ना, लड़कों के साथ खेलना और अपना थरमाकॉल का गिटार फ्लॉन्ट करना काफी अच्छा लगता है। वह घर के कामों में अपनी विधवा मां का हाथ भी बटाती है। उसका सपना है कि एक दिन उसके पास असल गिटार हो। क्या उसका यह सपना पूरा हो पाएगा
0 голосов
/ 04 октября 2018

Это данные Unicode, а не ASCII.и должны быть закодированы и отображены соответствующим образом.

  • python3 имеет лучшую поддержку юникода, рассмотрите возможность переключения, если вы еще не используете его.

  • терминал, на котором вы работаете, он также должен быть способен обрабатывать / отображать данные Unicode, в противном случае вы увидите поля, в которых должны быть символы.


edit: текств хинди, чтобы иметь возможность отображать его правильно, шрифты также должны быть установлены в вашей системе.


edit: вот моя попытка удалить тот же контент, используя python3:

In [1]: import requests 
   ...: from lxml import etree 
   ...:  
   ...: url = 'https://navbharattimes.indiatimes.com/movi
   ...: e-masti/movie-review/village-rockstars-movie-revi
   ...: ew-in-hindi/moviereview/65997258.cms' 
   ...:  
   ...: r = requests.get(url) 
   ...: tree = etree.HTML(r.text) 
   ...:  
   ...: all_divs = tree.xpath('//div[@class="Normal"]//te
   ...: xt()') 
   ...:  
   ...: text = ' '.join([i for i in all_divs if i.strip()
   ...: !=""]) 
   ...:                                                  

In [2]: text                                             
Out[2]: "रेणुका व्यवहारे कहानी:  असम के एक खूबसूरत गांव में रहने वाली धुनू को पेड़ पर चढ़ना, लड़कों के साथ खेलना और अपना थरमाकॉल का गिटार फ्लॉन्ट करना काफी अच्छा लगता है। वह घर के कामों में अपनी विधवा मां का हाथ भी बटाती है। उसका सपना है कि एक दिन उसके पास असल गिटार हो। क्या उसका यह सपना पूरा हो पाएगा?\n रिव्यू:  लेखक-प्रड्यूसर-निर्देशक  रीमा दास  की असमी फिल्म ' विलेज रॉकस्टार्स ' भारत की ओर से ऑस्कर 2019 के लिए बेस्ट फॉरेन लैंग्वेज कैटिगरी के लिए भेजी गई है। यह आशाओं, इच्छाओं और कठिनाइयों के सामने निडरता की बेबाक कहानी है जो स्लो होने के बावजूद आपकी कल्पनाओं को बांधती है। यह एक तरह से रीमा की अपने घर और वहां के खूबसूरत लोगों के लिए भेंट है। जिन लोगों को धीमी चलने वाली कहानियां पसंद नहीं हैं, यहां उनके सब्र की परीक्षा हो सकती है लेकिन रीमा ने अपने अंदाज में सभी किरदारों और उनकी जिंदगी का विवरण देने में समय लिया है। असम के दृश्यों और वहां की धुनों की शानदार सिनेमटॉग्रफी और ऑडियोग्रफी के जरिए रीमा आपको धुनू के सपनों की दुनिया में ले जाती हैं। \n एक ऐसी दुनिया जो आपको आपके सौभाग्य का एहसास दिलाती है। एक ऐसी दुनिया जहां अपने दुर्भाग्य के बावजूद एक मां अपनी बेटी को आगे बढ़ने के लिए प्रेरित करती है। वह कहती है कि हमारे पास परिश्रम के अलावा कुछ नहीं है। \n यह फिल्म गरीबी और उससे होने वाली दुविधाओं को दर्शाती है। इसका थीम ट्रैजडी है लेकिन फिर भी यह खुशियों को ढूंढने की एक दिल छू लेने वाली कहानी है। \n शानदार विजुअल और इमोशन्स के अलावा रीमा का लेखन भी काफी अच्छा है जिसमें लैंगिक समानता को बड़े ही अच्छे तरीके से कहानी में मिला दिया गया है। धुनू की मां अपनी बेटी की परवरिश बेटे की तरह ही करती है। वह धुनू का साथ देती है और उसे 'लड़की की तरह' रहने की नसीहत देने वाले समाज से लड़ती भी है। फिल्म की महिलाएं उन्हीं सामाजिक, शारीरिक और मानसिक समस्याओं से जूझती हैं जिनसे दो जून की रोटी कमाने के लिए एक पुरुष जूझता है। \n विलेज रॉकस्टार्स आपको एक ही समय में रुलाती भी है और उत्साहित भी करती है। यह एक छोटी बच्ची और उसकी मां के तकलीफों की कहानी से ज्यादा उन तकलीफों से लड़ने के जज्बे की कहानी है।\n ट्रेलर: X"
...