मैं सीख रहा हूं कि एलएक्सएमएल का उपयोग करके दस्तावेज़ों का विश्लेषण कैसे करें। ऐसा करने के लिए, मैं अपने लिंक्डइन पेज को पार्स करने की कोशिश कर रहा हूं। इसमें बहुत सारी जानकारी है और मुझे लगा कि यह एक अच्छा प्रशिक्षण होगा।

संदर्भ के साथ पर्याप्त। यहाँ मैं क्या कर रहा हूँ:

  1. url पर जा रहे हैं: https://www.linkedin.com/in/NAME/
  2. स्रोत कोड को "linkedin.html" के रूप में खोलना और सहेजना
  3. जैसा कि मैं अपनी वर्तमान नौकरी निकालने की कोशिश कर रहा हूं, मैं निम्नलिखित कर रहा हूं:
from io import StringIO, BytesIO
from lxml import html, etree

# read file
filename = 'linkedin.html'
file = open(filename).read()

# building parser
parser = etree.HTMLParser()
tree = etree.parse(StringIO(file), parser)

# parse an element
title = tree.xpath('/html/body/div[6]/div[4]/div[3]/div/div/div/div/div[2]/main/div[1]/section/div[2]/div[2]/div[1]/h2')
print(title)

ट्री वेरिएबल का प्रकार है

लेकिन यह हमेशा मेरे परिवर्तनीय शीर्षक के लिए एक खाली सूची लौटाता है।

मैं पूरे दिन कोशिश कर रहा हूं लेकिन अभी भी समझ नहीं आ रहा है कि मैं क्या गलत कर रहा हूं।

0
Grégoire de Kermel 31 मार्च 2020, 19:52

1 उत्तर

सबसे बढ़िया उत्तर

मुझे खुले() फ़ंक्शन के भीतर एन्कोडिंग पैरामीटर जोड़कर मेरी समस्या का उत्तर मिल गया है।

यहाँ मैंने क्या किया है:

def parse_html_file(filename):
    f = open(filename, encoding="utf8").read()
    parser = etree.HTMLParser()
    tree = etree.parse(StringIO(f), parser)
    return tree


tree = parse_html_file('linkedin.html')
name = tree.xpath('//li[@class="inline t-24 t-black t-normal break-words"]')
print(name[0].text.strip())
0
Grégoire de Kermel 6 अप्रैल 2020, 14:45