Конвертировать данные HTML в текстовый формат - Python - PullRequest
0 голосов
/ 28 апреля 2019

Я использую Selenium Web Driver для извлечения точек данных из профилей LinkedIn.В этом примере я хочу извлечь каждый навык из раздела навыков, но данные извлекаются в формате HTML.

При попытке преобразовать код HTML в текст я получаю прикрепленное сообщение об ошибке.

enter image description here

from parsel import Selector  
from selenium import webdriver 
from selenium.webdriver.common.keys import Keys  
from bs4 import BeautifulSoup 

driver = webdriver.Chrome('/Users/davidcraven/Downloads/chromedriver')

# get profile URL
driver.get('https://www.linkedin.com/AnyProfileURL')

# assigning the source code for the web page to variable sel
sel = Selector(text=driver.page_source)

# get skills
skills = sel.xpath('//*[starts-with(@class, "skills searchable has-several ")]').extract()

newtext = BeautifulSoup(skills, "lxml").text  

1 Ответ

0 голосов
/ 28 апреля 2019

Вы можете получить весь текст со страницы, используя селен.

Попробуйте это: следующий код будет печатать тексты в консоли.

from selenium import webdriver

driver = webdriver.Chrome(executable_path="chromedriver.exe")

driver.get("https://www.linkedin.com/in/profile")

elem = driver.find_element_by_tag_name("body")
print(elem.text)

driver.quit()


Редактировать:

В вашем кодеsel.xpath().extract возвращает список к skills.Вы должны повторить список, чтобы получить тексты.Следующий код печатает найденные тексты в консоли.

from parsel import Selector
from selenium import webdriver
from bs4 import BeautifulSoup

driver = webdriver.Chrome(executable_path="chromedriver")

# get profile URL
driver.get('https://www.linkedin.com/in/AnyProfile')

# assigning the source code for the web page to variable sel
sel = Selector(text=driver.page_source)

# get skills
skills = sel.xpath('//*[starts-with(@class, "skills searchable has-several ")]').extract()

# newtext = BeautifulSoup(skills, "lxml").text
for skl in skills:
    print(BeautifulSoup(skl,"lxml").text)

driver.quit()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...