Пытаясь соскрести сеть с веб-страницы из отдельной вкладки, я открыл селен - PullRequest
0 голосов
/ 14 апреля 2020

Мне удалось использовать селен, чтобы открыть веб-страницу на отдельной вкладке в моем Chrome веб-браузере. Эта веб-страница содержит данные массивной таблицы, которые я хочу получить с помощью Beautifulsoup. Однако мой код сгенерировал следующее сообщение об ошибке. Мой код выполняется на Windows.

selenium.common.exceptions.NoSuchWindowException: Message: no such window: target window already closed
from unknown error: web view not found

Ниже приведен код, который я использую.

из селена import webdriver из bs4 import BeautifulSoup import pandas в качестве запросов на импорт pd import os import time

#Open Webpage
url = "https://www.example.com"
driver=webdriver.Chrome(executable_path=r"C:\Users\Ben Lutz\Desktop\Ben Lutz\Runway Data Project\Updated Data\New Sheets\Scripts\chromedriver.exe")
driver.get(url)

driver.find_element_by_partial_link_text('Run').click()
time.sleep(100)
driver.close()

#Scrape Data
df_url = driver.current_url #This is the part of the code that the error is highlighting
page = requests.get(df_url).text
soup = BeautifulSoup(page, features = 'lxml')
text = soup.get_text()
soup.prettify()

table = soup.find('table')
table_rows = table.find_all('tr')
#print(table_rows)

Operations = pd.DataFrame()
for tr in table_rows:
    td = tr.find_all('td')
    row = [i.text for i in td]
    df_row = pd.DataFrame(row).T
    Operations = Operations.append(df_row.iloc[0])
print(Operations.head)

Есть ли причина, по которой я генерирую эту ошибку? И что нужно сделать, чтобы исправить это затруднительное положение?

Любая помощь действительно полезна. Спасибо.

Ответы [ 2 ]

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

Вы уже закрыли свой браузер, что причина, по которой вы столкнулись с проблемой. Удалить драйвер. close () из вашего кода, вызвавшего проблему, и попробуйте после этого использовать команду

driver. close(), чтобы закрыть текущее окно браузера, имеющее фокус.

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

Вы получаете ошибку, потому что вы звоните driver.close(), а затем ссылаетесь driver.current_url После вызова close окно браузера закрывается, поэтому в нем нет окна браузера для текущего URL для.

Переместите df_url = driver.current_url над строкой driver.close(), и вам должно быть хорошо до go .

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