无法在 Python 中打印



过去几周我一直在学习Python,以实现业务自动化。

基本上我必须进行网络抓取,但我在倒数第二行的代码中遇到了打印函数的问题。。。

def search_time(self):
for item in self.items:
print(f"Procurando {item}.")
self.driver.get(self.bot_url)
cpfBox = self.driver.find_element_by_xpath('//*[@id="search"]/div/div[1]/input')
cpfBox.send_keys(item)
time.sleep(2)
cpfButton = self.driver.find_element_by_xpath('//*[@id="search"]/div/div[2]/button')
cpfButton.click()
time.sleep(2)
self.delay = 3  # seconds

try:
WebDriverWait(self.driver, self.delay).until(EC.presence_of_element_located((By.XPATH, '//*[@id="main"]/div[1]/h2')))
print('CPF Valido')
except TimeoutException:
print('CPF Invalido')
time.sleep(2)
name = self.driver.find_element_by_xpath("/html/body/main[1]/div[1]/div[1]/div[1]/div[1]/h2").text
print(name)
time.sleep(2)

items = ["32911769953"]

bot_url = BOT(items)
bot_url.search_time()

检查xpath是否确实是要通过selenium获取的文本的正确路径。

如果这是一个网站,您可以转到要查找的元素,右键单击并选择Copy XPATH。

try:
WebDriverWait(self.driver, self.delay).until(EC.presence_of_element_located((By.XPATH, '//*[@id="main"]/div[1]/h2')))
name = self.driver.find_element_by_xpath("/html/body/main[1]/div[1]/div[1]/div[1]/div[1]/h2").text
print(name)
time.sleep(2)
print('CPF Valido')
except TimeoutException:
print('CPF Invalido')
time.sleep(2)

首先,我建议您泛化xpath查询。目前,它严重依赖于整个页面的结构。页面中不相关部分的小布局更改可能会给您带来不希望的结果。回顾一下使用//和谓词的xpath语法将在将来为您省去许多麻烦。

如果这没有帮助,请发布您试图解析的html。

相关内容

  • 没有找到相关文章

最新更新