您好,对于这篇冗长的帖子,我感到非常抱歉,但是我想确保这个问题是可以理解的..当我单击selenium ..时,可以从以下网站访问它:“ https://xangle.io/project/list ”以下任何元素都会将我带到新页面。我想抓取每个这些元素的链接。但是问题是当我检查那些寻找URL的元素时,我在html中找不到任何URls。这是html代码的屏幕截图:我看过元素的检查区域,但找不到任何链接,(也许我错过了)。无论如何,这就是我尝试过的方法,但我认为它不是正确的解决方案:
driver = webdriver.Chrome(r'C:\Users\User\AppData\Local\Programs\Python\Python37\Lib\site-packages\chromedriver_py\chromedriver_win32.exe')
driver.get('https://xangle.io/project/list')
wait = WebDriverWait(driver, 15)
wait.until(EC.element_to_be_clickable((By.XPATH, "//div[@class='project-table']//div[@class='table-row']//div[3]")))
list_ = driver.find_elements_by_xpath("//div[@class='project-table']//div[@class='table-row']//div[3]")
for i in list_:
i.click()
print(driver.current_url)
driver.back()
它抛出一个错误:
StaleElementReferenceException: Message: stale element reference: element is not attached to the page document
(Session info: chrome=80.0.3987.163)
坦白地说,我不想摆脱错误,我想找到一种正确的方法来抓取在检查时不显示的网址
如果检查“网络”选项卡,则可以发现这些数据来自其API:https : //api.xangle.io/project/list?items_per_page=50&page=0
如果您查看每个项目中的链接,您将看到它是一个前缀链接及其符号。
import requests
url = "https://api.xangle.io/project/list?items_per_page=50&page=0"
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.162 Safari/537.36'}
r = requests.get(url, headers=headers)
prefix = "https://xangle.io/project/"
data = r.json()
links = [prefix+d["symbol"] for d in data]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句