python - 网站上的文本不使用硒进行抓取
问题描述
我正在尝试从我们订购轮胎的网站发送文本到不和谐的嵌入中。我登录该站点,搜索一个项目并查看它是否可用。我希望嵌入的不和谐显示可订购的数量,但它不显示任何内容。它正在显示的其他元素,但不显示 ,Available
和不显示。Alt Plant
Tire Tread
Est Delivery
(抱歉,如果我的代码很乱,我是新手,过去一个小时我一直在玩它)
# Finding the Quantity + Tire Description
try:
available1 = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.XPATH, "//*[@id='resultsTable']/tbody/tr[2]/td[9]"))
)
altPlant1 = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.XPATH, "/html/body/div[2]/div[2]/div[2]/div/form/div[1]/table/tbody/tr[2]/td[10]"))
)
estDelivery1 = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.XPATH, "/html/body/div[2]/div[2]/div[2]/div/form/div[1]/table/tbody/tr[2]/td[11]"))
)
tireSize1 = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.XPATH, "/html/body/div[2]/div[2]/div[2]/div/form/div[1]/table/tbody/tr[2]/td[5]"))
)
tireTread1 = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.XPATH, "//*[@id='resultsTable']/tbody/tr[2]/td[7]"))
)
itemCode1 = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.XPATH, "/html/body/div[2]/div[2]/div[2]/div/form/div[1]/table/tbody/tr[2]/td[2]"))
)
except:
driver.quit()
available = available1.text
altPlant = altPlant1.text
estDelivery = estDelivery1.text
tireSize = tireSize1.text
tireTread = tireTread1.text
itemCode = itemCode1.text
print(available)
print(altPlant)
print(estDelivery)
print(tireSize)
print(tireTread)
print(itemCode)
# Discord Embed Setup
embed = Embed(
description='**Stock available for item number '+pItemNumber+'**',
color=0x0d0d22,
timestamp='now' # sets the timestamp to current time
)
embed.set_author(name='Pirelli Stock Check')
embed.add_field(name='Item Number', value=itemCode, inline=True)
embed.add_field(name='Tire Description', value=tireTread+' '+tireSize, inline=True)
embed.add_field(name='Available', value=available+' In Stock', inline=False)
embed.add_field(name='Alt Plant', value=altPlant+ ' In Stock', inline=True)
embed.add_field(name='Est Delivery', value=estDelivery+'1', inline=True)
embed.set_footer(text='Tires Tools', icon_url='https://cdn.discordapp.com/avatars/628005829840470037/8286685de0f2d7d94d94e020caf3265d.png?size=128')
hook.send(embed=embed)
print("Embed sent to discord!")
我需要的 4 个字符串也在源代码中。tireTread = CINTURATO P7
, available = 12
,altPlant = 7
和estDelivery = 08/24/2020
.
这就是我的不和谐嵌入中的内容。
知道我做错了什么吗?如果您需要更多信息,请告诉我。
解决方案
您可以通过 ID 或 CSS 类查找元素:
table = WebDriverWait(driver,10).until(EC.presence_of_element_located((By.ID, "tabla_evolucion")))
table = WebDriverWait(driver,10).until(EC.presence_of_element_located((By.class, "css-class sub-class")))
我建议您按 ID 查找表,然后通过循环读取行。也许您需要根据需要更改以下代码。
table_id = self.driver.find_element(By.ID, 'table_id')
rows = table_id.find_elements(By.TAG_NAME, "tr") # get all of the rows in the table
for row in rows:
# Get the columns (all the column 2)
col = row.find_elements(By.TAG_NAME, "td")[1] #note: index start from 0, 1 is col 2
print col.text #prints text from the element
推荐阅读
- javascript - 如何使用 Javascript 创建实时媒体流
- javascript - 大字典引起的 Javascript 错误
- python - Python猜测游戏拒绝无效的用户输入
- javascript - 如何将 vscode css 颜色选择器功能带入带有匹配颜色名称格式的字符串的 js 文件中?
- c# - 如何通过查询连接 2 个 SQL Server 表并动态使用数据
- r - R中按组替换缺失值
- asp.net - 允许操作结果接受抽象类作为参数的任何解决方法
- c# - 从亚马逊 MWS XML 产品提要中获取变体
- puppet - rspec-puppet:找不到所需的类
- python - 使用 pandas groupby 的 csv 列问题