Как получить ответ на комментарий ID с тем же идентификатором, тот же класс с идентификатором родительского комментария (используя данные Selenium scraper)

#python #selenium #selenium-webdriver

#python #selenium #selenium-webdriver

Вопрос:

У меня есть структура:

 [
 # If it is a comment (parent comment)
 {
  'commentParentId': '',
  'parentId': '',
  'posted': '28/02/2019',
  'author': {
     'id': '125379',
     'name': 'david',
  },
  'content': 'i need help'
 },
 # If it is a comment reply
 {
  'commentParentId': 'abcdedf',
  'parentId': '253654',
  'posted': '28/02/2019',
  'author': {
    'id': '458216',
    'name': 'david',
  },
  'content': 'i need help'
  },
  ........................
  }]
  

Я хочу очистить комментарий и ответы на комментарии,

Если это комментарий: CommentParentID и ParentID являются null .

В противном случае это ответ на комментарий: CommentParentID и ParentID будет взят ID из комментария, на который кто-то ответил.

Я очищаю комментарии с помощью Selenium, вот так:

 import requests
from bs4 import BeautifulSoup
import json
from datetime import datetime
from selenium import webdriver

# Execute Web link
url = "https://genvita.vn/thu-thach/7-ngay-detox-da-dep-dang-thon-nguoi- 
       khoe-qua-soc-len-den-8-trieu-dong"
driver_path = ('F:/chromedriver.exe')
browser = webdriver.Chrome(executable_path=driver_path)
browser.get(url)

confirm_write = input("Input ok to scrape data: ")
# I want to load all comments (click 'Xem Thêm' then data was 
# scraper)

if confirm_write == 'ok':

getID = browser.find_element_by_css_selector("div[class='media-body- 
         replies']")
getChildID = getID.find_elements_by_css_selector('data-comment-id')
# Get ID
for childID in getChildID:
    print(childID.get_attribute('data-comment-id'))
  

Но мой код не работает.

Комментарий и ответ на комментарий имеют один и тот же класс, тот же идентификатор, разница только между комментарием и ответом на комментарий — это класс: class ='media-body-replies' .

Но я использую это, и это не работает.

Если я использую getChildID = browser.find_elements_by_css_selector('data-comment-id')

Я получу все идентификаторы parentID и replyID (аналогично содержимому), я не могу отделить комментарий от ответа на комментарий.

Спасибо

Комментарии:

1. Мне что-то не ясно. Когда вы используете «data-comment-id», вы получаете оба типа комментариев, но вам нужен только один из них или вы хотите иметь возможность разделять родительские и дочерние комментарии?

2. @NoSplitSherlock я хочу разделить родительские и дочерние комментарии, потому что идентификатор и класс родительских и дочерних комментариев одинаковы, это не имеет разницы, кроме дочерних комментариев внутри класса class='media-body-replies' , я попробую это, но это не может удалить дочерние комментарии.

3. @NoSplitSherlock вы можете получить доступ к моему веб-сайту: genvita.vn/thu-thach / … для получения дополнительной информации данные были scraper

4. Не было бы лучшей идеей выполнить поиск контейнера комментариев и просмотреть комментарии, просматривая тип комментария?

5. @NoSplitSherlock Меня пытались, но это не сработало, потому что идентификатор и класс родительских и дочерних комментариев не имеют значения, поэтому я не могу создать цикл для разделения и поиска родительских и дочерних комментариев