Я пытаюсь очистить веб-данные на этом веб-сайте, и единственный способ, которым я смог получить доступ к данным, - это итерация по строкам таблицы, добавление их в список (затем добавление их во фрейм данных pandas / запись в csv), а затем переход на следующую страницу и повторение процесса [около 50 страниц на поиск, и моя программа выполняет более 100 запросов]. Это супер медленно / неэффективно, и мне было интересно, есть ли способ эффективно добавить все данные, используя панды или красивый суп, вместо того, чтобы перебирать каждую строку / столбец.
url = "https://claimittexas.org/app/claim-search"
rows = driver.find_elements_by_xpath("//tbody/tr")
try:
for row in rows[1:]:
row_array = []
#print(row.text) # prints the whole row
for col in row.find_elements_by_xpath('td')[1:]:
row_array.append(col.text.strip())
table_array.append(row_array)
df = pd.DataFrame(table_array)
df.to_csv('my_csv.csv', mode='a', header=False)
except:
print(letters + "no table exists")
РЕДАКТИРОВАТЬ: Я пытался чистить, используя красивый суп, то, что я пытался в начале недели и о котором писал, но я не могу получить доступ к таблице без использования селена
В версии bs я поместил несколько операторов print, чтобы увидеть, что было не так, и в нем значение строк - просто пустой список
html = driver.page_source
soup = BeautifulSoup(html, 'lxml')
rows = soup.find('table').find('tbody').find_all(('tr')[1:])
for row in rows[1:]:
cells = row.find_all('td')
for cell in cells[1:]:
print(cell.get_text())