Я пытаюсь напечатать все строки, у которых есть слово tree в первом столбце (столбец A).
url = "https:www.example.com"
driver = webdriver.Chrome()
driver.get(url)
inputElement = driver.find_element_by_id("txtBusinessName")
inputElement.send_keys("tree")
inputElement.send_keys(Keys.ENTER)
try:
element = WebDriverWait(driver, 30).until(
EC.presence_of_element_located((By.ID, "grid_businessList"))
)
finally:
html = driver.page_source
soup = BeautifulSoup(html, "html.parser")
table = soup.find('table', id="grid_businessList")
rows = table.findAll("tr")
columns = [v.text.replace('\xa0',' ') for v in rows[0].find_all('th')]
df = pd.DataFrame(columns=columns)
for i in range(1, len(rows)):
tds = rows[i].find_all('td')
if len(tds) == 5:
values = [tds[0].text, tds[1].text, tds[2].text, tds[3].text, tds[4].text, tds[5].text]
else:
values = [td.text for td in tds]
df = df.append(pd.Series(values, index=columns), ignore_index=True)
biz = df[df['Business Name'].str.contains('tree')]
print(biz)
Но он находит «tree» только в 4 из строк, хотяего настоящее больше.
Печатается это 11 раз:
Пустой фрейм данных
Столбцы: [A, B, C, D, E, F]
Index: []
Затем выводятся точные результаты для строк 11, 13, 17, 20.
Почему .str.contains не смотрит в столбец A в каждой строке?