Как извлечь часть веб-страницы с использованием селена и wendriver? - PullRequest
1 голос
/ 23 апреля 2020

Я хочу извлечь часть источника веб-страницы. Теперь я могу извлечь весь код html и вывести правильный код. Тем не менее, я хочу извлечь только часть кода. Ниже приведен их код html, который я хочу сканировать:

Я хочу сканировать только красный диапазон. enter image description here

А потом, мой python код:

    from datetime import date,datetime
    from selenium import webdriver
    from selenium.webdriver.common.keys import Keys
    from bs4 import BeautifulSoup
    from selenium.webdriver.support.ui import Select
    from selenium.common.exceptions import NoSuchElementException
    import numpy as np
    import xlrd
    import csv
    import codecs
    import time
    import os

        driver_blank=webdriver.Chrome('./chromedriver')
        driver_blank.get('https://forumd.hkgolden.com/view.aspx?type=CA&message=7223327')
        time.sleep(1)
        try_value = 1
        while(try_value):
            try:
                driver_blank.find_element_by_xpath('/html/body/form/div[5]/div/div/div[2]/div[1]/div[5]/table[2]')
                print('OK')
                try_value=0
            except NoSuchElementException as e:
                print('Refreash now')
                driver_blank.refresh()
                time.sleep(10)
        html_code = driver_blank.page_source
        print(html_code)

Может кто-нибудь помочь мне отредактировать код? Я хочу знать, что это может использовать полный xpath, чтобы найти этот диапазон? Спасибо ~~~

1 Ответ

1 голос
/ 23 апреля 2020

Если вы хотите получить сетку html Сначала вам нужно идентифицировать grid element, а затем использовать get_attribute("outerHTML")

Индуцировать WebDriverWait () и ждать visibility_of_element_located ()

Код :

driver.get("https://forumd.hkgolden.com/view.aspx?type=CA&message=7223327")
WebDriverWait(driver,20).until(EC.visibility_of_element_located((By.XPATH,"(//div[@class='ContentGrid'])[1]")))
print(driver.find_element_by_xpath("(//div[@class='ContentGrid'])[1]").get_attribute("outerHTML"))

Вам необходимо добавить следующие библиотеки.

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...