WebScraping с Python / Selenium - PullRequest
       11

WebScraping с Python / Selenium

0 голосов
/ 25 февраля 2019

Я пытаюсь получить некоторые данные с Youtube, но я пытаюсь поймать текст, вот мой код:

username = "unboxtherapy"
driver = webdriver.Chrome('C:/Users/Chrome Web Driver/chromedriver.exe')
api_url = "https://www.youtube.com/user/"+username+"/about"
driver.get(api_url)
html = driver.find_element_by_tag_name('html')
soup=bs(html.text,'html.parser')
text=str(soup)

В приведенном выше примере я пытаюсь захватитьописание, отображаемое на странице.

soup

возвращает весь текст на странице, то есть описание, которое я хочу + множество других вещей, которые мне не нужны.

text

возвращает весь следующий текст:

"GB \ nSIGN IN \ nUnbox Therapy \ n13,802,667 подписчиков \ nJOIN \ nSUBSCRIBE \ nTwitter \ nHOME \ nVIDEOS \ nPLAYLISTS \ nCOMMUNITY \ nCHANNELS \ nABOUT \ nDescriptionпродукты обнажаются. \ n \ nВы найдете множество видеороликов, демонстрирующих самые крутые продукты на планете. От новейшего смартфона до удивительных гаджетов и технологий, о которых вы никогда не подозревали. Все это есть на Unbox Therapy. \ n \ nБизнес / профессионалТОЛЬКО для запросов - business [at] unboxtherapy.com \ n (пожалуйста, не используйте входящие в YouTube) \ nСсылки \ nTwitter Facebook Instagram Официальный сайт \ nStats \ nЗарегистрирован 21 декабря 2010 года \ n2 698 921 226 просмотров \ nOРОЧИЕ COOL КАНАЛЫ. \ NLew Позже \ nSUBSCRIBE \ nMarques Браунли \ nSUBSCRIBE \ nJonathan Моррисон \ nSUBSCRIBE \ nAustin Evans \ nSUBSCRIBE \ nDetroitBORG \ nSUBSCRIBE \ nLooneyTek \ nSUBSCRIBE \ nSoldier Knows Best \ nSUBSCRIBE \ nUrAvgConsumer \ nSUBSCRIBE \ nRELATED КАНАЛОВ \ nLinus Tech Tips \nSUBSCRIBE \ nJerryRigEverything \ nSUBSCRIBE \ nMrwhosetheboss \ nSUBSCRIBE \ nTechSmartt \ nSUBSCRIBE "

Есть ли способ получить только описание?это вообще возможно?

Заранее спасибо всем, кто может мне помочь.

С наилучшими пожеланиями

Ответы [ 2 ]

0 голосов
/ 25 февраля 2019

Простой анализ может быть выполнен с использованием только селена.

driver.get(api_url)
description = drvier.find_element_by_id('description')
print(description.text)

(если вы используете Chrome и знаете о проверке)
, чтобы узнать имя тега, идентификатор или значение атрибута:

  1. просто щелкните правой кнопкой мыши по тексту описания (вы хотите найти элемент)
  2. выберите «осмотреть» следующим образом:

like this

Тогда выможно проверить значение следующим образом:

like this

  • текст розового цвета: имя тега
  • '#' и текст оранжевого цвета: id
  • ''% синий цвет текста: значение атрибута

Теперь используйте метод драйвера

driver.find_by_elemeent_by_tag_name()  
driver.find_by_elements_by_tag_name()  
driver.find_by_element_id()  
driver.find_by_elements_id()  
driver.find_by_element_class_name()  
driver.find_by_elements_class_name()  
0 голосов
/ 25 февраля 2019

Попробуйте приведенный ниже код. Дайте мне знать, если он работает.

import bs4 as bs
import re
username = "unboxtherapy"
driver = webdriver.Chrome('C:/Users/Chrome Web Driver/chromedriver.exe')
api_url = "https://www.youtube.com/user/"+username+"/about"
driver.get(api_url)
html = driver.page_source
soup=bs.BeautifulSoup(html,'html.parser')
findtext=soup.find_all('yt-formatted-string',id=re.compile("description"))
for txt in findtext:
    print(txt.text)

Вывод:

Where products get naked.

Here you will find a variety of videos showcasing the coolest products on the planet. From the newest smartphone to surprising gadgets and technology you never knew existed. It's all here on Unbox Therapy.

Business / professional inquiries ONLY - business [at] unboxtherapy.com
(please don't use YouTube inbox)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...