尝试如何使用Selenium和Python抓取orbitz.com时,Field XPath如何保持变化?

用户名

以下是我尝试用来抓取Orbitz.com的脚本。问题在于,SAME字段的XPath(让我们使用FROM Airport字段)一直在变化。一次是fromDate_XPath = ".//*[@id='8f57e1cb92a99815ca1085ac0f6d31db']",下次是.//*[@id='0a3807a6e50ffd4cc05eaca5b6aada17']

Orbitz是否专门这样做以防止刮擦?我本以为如果我使用他们的网站来获取购买门票的链接,他们将获得这些门票,因此可以让我抓取,不是吗?

有什么办法可以解决这个问题?

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait

driver = webdriver.Chrome()
driver.get("http://www.orbitz.com/")
# X-PATHS FOR DIFFERENT FIELDS
fltOption_Xpath = ".//*[@id='products']/div/fieldset/div[2]/label[1]/div"
fromAir_XPath = ".//*[@id='2de60aafe0629114603daf0bc1ab52a6']"
toAir_XPath = ".//*[@id='9c64cbe5f29f6f28b64ddb9811e102b5']"
fromDate_XPath = ".//*[@id='8f57e1cb92a99815ca1085ac0f6d31db']"

toDate_XPath = ".//*[@id='aa8496535efd1aec3badf9423813fbbd']"


selFlightsOption_Element = WebDriverWait(driver, 10).until(lambda driver: driver.find_element_by_xpath(fltOption_Xpath))

selFlightsOption_Element.click()


fromAir_Element = WebDriverWait(driver, 10).until(lambda driver: driver.find_element_by_xpath(fromAir_XPath))
toAir_ELement = WebDriverWait(driver, 10).until(lambda driver: driver.find_element_by_xpath(toAir_XPath))
fromDate_Element = WebDriverWait(driver, 10).until(lambda driver: driver.find_element_by_xpath(fromDate_XPath))
toDate_Element = WebDriverWait(driver, 10).until(lambda driver: driver.find_element_by_xpath(toDate_XPath))



fromAir_Element.click()
fromAir_Element.clear()
fromAir_Element.send_keys("IAH")

toAir_Element.click()
toAir_Element.clear()
toAir_Element.send_keys("MUM")
ec

由于id输入的属性是动态生成的,因此不要将定位器依赖于它们。

您可以切换到names-从我看到的内容来看,它们没有变化,而且可读性很强。例如,对于“仅限酒店”模式下的“起始日期”输入:

fromDate_Element = driver.find_element_by_name("hotel.chkin")

或者由于某种原因需要XPath:

fromDate_Element = driver.find_element_by_xpath("//input[@name='hotel.chkin']")

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

尝试如何使用Selenium和Python抓取orbitz.com时,Field XPath会如何变化?

来自分类Dev

如何在重新加载页面时保持背景颜色的变化?

来自分类Dev

如何使用Selenium和Python抓取注释?

来自分类Dev

如何使用 Selenium 和 Python 抓取 Glassdoor 评级

来自分类Dev

单击后 URL 保持静态时如何使用 Selenium 进行网页抓取

来自分类Dev

当网站阻止不抓取内容时,如何使用Python抓取?

来自分类Dev

使用Python进行网页抓取时,如何分隔列和格式化日期?

来自分类Dev

如何在使用python和Beautiful soup抓取时访问站点中的兄弟元素

来自分类Dev

在使用 selenium 和 python 抓取数据时迭代点击

来自分类Dev

在 Python 中抓取时如何同时打印段落和标题?

来自分类Dev

如何使用Selenium Webdriver和Python抓取所有搜索结果

来自分类Dev

如何在 Windows 10 上使用 Selenium 和 Python 3.6 抓取表格

来自分类Dev

如何使用Python和Selenium拉出变化的类名?

来自分类Dev

如何使用BeautifulSoup和Python抓取页面?

来自分类Dev

你如何使用 selenium 和 BS3 抓取 javascript?

来自分类Dev

尝试使用Selenium单击按钮时,如何得到InvalidSelectorException?

来自分类Dev

当HTML不变时,如何使用Python进行网上抓取?

来自分类Dev

状态变化时如何保持计数器值?

来自分类Dev

尝试从基于Ajax的Webstie抓取数据时,如何使用Scrapy模拟xhr请求?

来自分类Dev

如何使用Selenium / Python在分页网站上抓取网址

来自分类Dev

动态和变化的 XPATH

来自分类Dev

在python中,当我尝试选择随机数时,如何确保使用randint的种子不断变化?

来自分类Dev

如何使用Xpath Selenium和Python找到span元素

来自分类Dev

如何通过 Selenium 和 Python 使用 xpath 精确数字

来自分类Dev

如何使用Selenium和Python在https://www.deepl.com/translator中单击“复制”按钮

来自分类Dev

如何使用Selenium和Python在https://www.shopdisney.com/中找到“创建帐户”元素

来自分类Dev

如何使用Selenium和Python在https://meet.google.com上单击“要求加入”按钮?

来自分类Dev

禁用按钮时如何避免颜色变化?

来自分类Dev

禁用按钮时如何避免颜色变化?

Related 相关文章

  1. 1

    尝试如何使用Selenium和Python抓取orbitz.com时,Field XPath会如何变化?

  2. 2

    如何在重新加载页面时保持背景颜色的变化?

  3. 3

    如何使用Selenium和Python抓取注释?

  4. 4

    如何使用 Selenium 和 Python 抓取 Glassdoor 评级

  5. 5

    单击后 URL 保持静态时如何使用 Selenium 进行网页抓取

  6. 6

    当网站阻止不抓取内容时,如何使用Python抓取?

  7. 7

    使用Python进行网页抓取时,如何分隔列和格式化日期?

  8. 8

    如何在使用python和Beautiful soup抓取时访问站点中的兄弟元素

  9. 9

    在使用 selenium 和 python 抓取数据时迭代点击

  10. 10

    在 Python 中抓取时如何同时打印段落和标题?

  11. 11

    如何使用Selenium Webdriver和Python抓取所有搜索结果

  12. 12

    如何在 Windows 10 上使用 Selenium 和 Python 3.6 抓取表格

  13. 13

    如何使用Python和Selenium拉出变化的类名?

  14. 14

    如何使用BeautifulSoup和Python抓取页面?

  15. 15

    你如何使用 selenium 和 BS3 抓取 javascript?

  16. 16

    尝试使用Selenium单击按钮时,如何得到InvalidSelectorException?

  17. 17

    当HTML不变时,如何使用Python进行网上抓取?

  18. 18

    状态变化时如何保持计数器值?

  19. 19

    尝试从基于Ajax的Webstie抓取数据时,如何使用Scrapy模拟xhr请求?

  20. 20

    如何使用Selenium / Python在分页网站上抓取网址

  21. 21

    动态和变化的 XPATH

  22. 22

    在python中,当我尝试选择随机数时,如何确保使用randint的种子不断变化?

  23. 23

    如何使用Xpath Selenium和Python找到span元素

  24. 24

    如何通过 Selenium 和 Python 使用 xpath 精确数字

  25. 25

    如何使用Selenium和Python在https://www.deepl.com/translator中单击“复制”按钮

  26. 26

    如何使用Selenium和Python在https://www.shopdisney.com/中找到“创建帐户”元素

  27. 27

    如何使用Selenium和Python在https://meet.google.com上单击“要求加入”按钮?

  28. 28

    禁用按钮时如何避免颜色变化?

  29. 29

    禁用按钮时如何避免颜色变化?

热门标签

归档