javascript __doPostBack 的网页抓取在 td 中包含一个 herf [英] web scraping for javascript __doPostBack contain a herf in td

查看:59
本文介绍了javascript __doPostBack 的网页抓取在 td 中包含一个 herf的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想抓取一个网站,即 https://www.unspsc.org/search-code/default.aspx?CSS=51%&Type=desc&SS%27=使用 selenium,但我只能抓取一页,而不能抓取其他页面.

这里我使用硒

from selenium import webdriver从 selenium.webdriver.chrome.options 导入选项从 selenium.webdriver.support.ui 导入 WebDriverWaitfrom selenium.webdriver.common.by import By从 selenium.webdriver.support 导入 expected_conditions 作为 ECchromeOptions = webdriver.ChromeOptions()chromeOptions.add_experimental_option('useAutomationExtension', False)驱动程序 = webdriver.Chrome(executable_path='C:/Users/ptiwar34/Documents/chromedriver.exe', chrome_options=chromeOptions, desired_capabilities=chromeOptions.to_capabilities())driver.get('https://www.unspsc.org/search-code/default.aspx?CSS=51%&Type=desc&SS%27=')WebDriverWait(driver, 20).until(EC.staleness_of(driver.find_element_by_xpath("//td/a[text()='2']")))driver.find_element_by_xpath("//td/a[text()='2']").click()numLinks = len(WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.XPATH, "//td/a[text()='2']"))))打印(数量链接)对于 i 在范围内(numLinks):打印(在页面{}上执行您的抓取".格式(str(i + 1)))WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//td/a[text()='2']/span//following::span[1]))).点击()驱动程序退出()

这里是html内容

 <td><span>1</span></td><td><ahref="javascript:__doPostBack(&#39;dnn$ctr1535$UNSPSCSearch$gvDetailsS​​earchView&#39;,&#39;Page$2&#39;)"style="color:#333333;">2</a></td>

这会引发错误:

raise TimeoutException(message, screen, stacktrace)超时异常

解决方案

爬取网站 https://www.unspsc.org/search-code/default.aspx?CSS=51%&Type=desc&SS%27= 使用 Seleniuma> 您可以使用以下定位器策略::>