Я пытался извлечь следующую таблицу, которую я использую с помощью chromedriver для автоматизации ввода, а затем с помощью службы защиты от капчи, и я видел пример, когда кто-то использовал красивый суп после создания таблицы.
Это многостраничная таблица, но я просто пытался даже получить первую страницу, прежде чем пытаться выяснить, как нажимать на другие страницы, я не уверен, смогу ли я использовать красивый суп, потому что, когда я пробую код ниже я получаю первую строку «Нет свойств для отображения». что было бы, если бы не было результатов поиска и есть.
Я не могу встроить изображение сюда, поскольку мой рейтинг недостаточно высок (извините, я новичок в этом и раздражает, я пытался выяснить это, прежде чем отправлять сообщения в течение нескольких часов), но если вы посетите веб-сайт и поиск "Al" или любой ввод вы можете увидеть в таблице HTML https://claimittexas.org/app/claim-search
вот мой код-
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from bs4 import BeautifulSoup
from python_anticaptcha import AnticaptchaClient, NoCaptchaTaskProxylessTask
import re
import pandas as pd
import os
import time
import requests
parsed_table_date = []
url = "https://claimittexas.org/app/claim-search"
driver = webdriver.Chrome()
driver.implicitly_wait(15)
driver.get(url)
lastNameField = driver.find_element_by_xpath('//input[@id="lastName"]')
lastNameField.send_keys('Al')
api_key = #MY API key
site_key = '6LeQLyEUAAAAAKTwLC-xVC0wGDFIqPg1q3Ofam5M' # grab from site
client = AnticaptchaClient(api_key)
task = NoCaptchaTaskProxylessTask(url, site_key)
job = client.createTask(task)
print("Waiting to solution by Anticaptcha workers")
job.join()
# Receive response
response = job.get_solution_response()
print("Received solution", response)
# Inject response in webpage
driver.execute_script('document.getElementById("g-recaptcha-response").innerHTML = "%s"' % response)
# Wait a moment to execute the script (just in case).
time.sleep(1)
# Press submit button
driver.find_element_by_xpath('//button[@type="submit" and @class="btn-std"]').click()
time.sleep(1)
html = driver.page_source
soup = BeautifulSoup(html, "lxml")
table = soup.find("table", { "class" : "claim-property-list" })
table_body = table.find('tbody')
#rows = table_body.find_all('tr')
for row in table_body.findAll('tr'):
print(row)
for col in row.findAll('td'):
print(col.text.strip())