在 Python 中使用 Selenium 按类名单击并抓取'a href'链接



我有以下一个只有类标识符的href链接。我试图让 Selenium 递归点击每个链接,但 Selenium 没有从每个"a href"链接返回正确的页面来源。

<div class="row">
<div class="item">
↳<a href /path/to/link/ class="link-box">
<div class="item">
<div class="item">
<div class="item">

我在这里做错了什么:

driver = webdriver.Chrome("/Users/me/Downloads/chromedriver", options=options)
driver.get("https://the_website")
link_box = driver.find_elements_by_class_name('link-box')
for i in range(len(link_box)):
driver.execute_script("arguments[0].click();", link_box[i])
page_source = driver.page_source
pprint(page_source)

我写了另一个代码来做到这一点。

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
#driver = webdriver.Chrome(executable_path='chromedriver.exe')
driver = webdriver.Firefox(executable_path='geckodriver')
driver.get("url")
l=[]
for a in driver.find_elements_by_class_name('link-box'):
link = a.get_attribute('href')
l.append(link)
print(l)
for b in range(len(l)):
driver.execute_script("window.open('');")
driver.switch_to.window(driver.window_handles[b+1]) 
driver.get(l[b])
print(l[b])

首先,它将采用所有具有类链接框的链接。然后它将在新选项卡中打开所有链接。否则,可能会出现错误。我用 Firefox 做了这个,但如果你用 Chrome 评论行4和取消注释行3。然后给出正确的道路。

相关内容

  • 没有找到相关文章

最新更新