Я хочу использовать Selenium и веб-драйвер для сбора части информации. Я хочу поймать следующую информацию:
7197409
Следующий код является их html кодом, я хочу поймать "7197409"
<script type="text/javascript">
var messageid = 7197409;
var highlight_id = -1;
var authorOnly = "N";
var ftype = 'MB';
var adsenseFront = '<table width="99%" cellspacing="0" cellpadding="0" style="background-color: #000000; margin-left: auto; margin-right: auto;"><tr><td style="width: 100%; background-color: #F7F3F7;">';
var adsenseEnd = '</td></tr></table>';
var Submitted = false;
var subject = true;
var HiddenThreads = new Array(26); //Temp variable to save the threads temporary
var blocked_list = Sys.Serialization.JavaScriptSerializer.deserialize('[]');
var currentUser = undefined;
var followList = [];
var lock = false;
</script>
Я проверил их полный путь xpath /html/body/form/div[5]/div/div/div[2]/div[1]/script/text()
Я использую следующий код для его выполнения.
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
url = "https://forumd.hkgolden.com/view.aspx?type=MB&message=7197409"
driver_blank=webdriver.Chrome('./chromedriver')
driver_blank.get(url)
id=driver_blank.find_element_by_xpath("/html/body/form/div[5]/div/div/div[2]/div[1]/script/text()")
print("ID:"+id.text)
driver_blank.close()
Однако я получил следующее сообщение об ошибке. Они сказали, что The result of the xpath expression "/html/body/form/div[5]/div/div/div[2]/div[1]/script/text()" is: [object Text]. It should be an element.
DevTools прослушивает ws: //127.0.0.1: 50519 / devtools / browser / 845d0800-1dd9-4f8a-a847-7d955c8cc5e3 libpng предупреждение: iCCP: чанк cHRM не работает соответствовать sRGB [16136: 16764: 0411 / 213956.920: ОШИБКА: ssl_client_socket_impl. cc (941)] сбой рукопожатия; вернул -1, код ошибки SSL 1, net_error -107 [16136: 16764: 0411 / 213957.351: ОШИБКА: ssl_client_socket_impl. cc (941)] сбой квитирования; вернул -1, код ошибки SSL 1, net_error -107 Traceback (последний вызов был последним): файл ". \ test.py", строка 28, в id = driver_blank.find_element_by_xpath ("/ html / body / form / div [5 ] / div / div / div [2] / div 1 / script / text () ") Файл" C: \ Program Files \ Python37 \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py ", строка 394, в find_element_by_xpath вернуть self.find_element (by = By.XPATH, value = xpath) Файл" C: \ Program Files \ Python37 \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py ", строка 978, в find_element 'value': value}) ['value'] Файл" C: \ Program Files \ Python37 \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py " , строка 321, в исполняемом файле self.error_handler.check_response (response) Файл "C: \ Program Files \ Python37 \ lib \ site-packages \ selenium \ webdriver \ remote \ errorhandler.py", строка 242, в check_response вызывает исключение_класса (message, screen, stacktrace) selenium.common.exceptions.InvalidSelectorException: Сообщение: недопустимый селектор: результат выражений xpath sion "/ html / body / form / div [5] / div / div / div [2] / div 1 / script / text ()" is: [объект Text]. Это должен быть элемент. (Информация о сеансе: chrome = 80.0.3987.132)
Я хочу задать два вопроса:
Как устранить ошибку?
Как получить только текст 7197409 в том же диапазоне xpath?
Кто-нибудь может мне помочь? Спасибо