【发布时间】:2017-06-20 14:24:01
【问题描述】:
运行我的脚本,我得到“javascript:getDetail(19978)”之类的项目,例如 href。大括号中的数字如果与“https://www.aopa.org/airports/4M3/business/”连接,则生成有效链接。但是,单击这个新创建的链接,我可以看到它让我进入另一个页面,如果从原始页面链接单击,该页面与该页面不同。如何获取原始链接而不是“javascript:getDetail(19978)”。应在搜索框中写下“全部”进行搜索。 我试过的代码:
from selenium import webdriver
import time
link = "https://www.aopa.org/airports/4M3/business/"
driver = webdriver.Chrome()
driver.get("https://www.aopa.org/learntofly/school/")
driver.find_element_by_id('searchTerm').send_keys('All')
driver.find_element_by_id('btnSearch').click()
time.sleep(5)
for pro in driver.find_elements_by_xpath('//td/a'):
print(pro.get_attribute("href"))
driver.quit()
使用我在描述中粘贴的基本网址创建新链接的代码:
from selenium import webdriver
import time
link = "https://www.aopa.org/airports/4M3/business/"
driver = webdriver.Chrome()
driver.get("https://www.aopa.org/learntofly/school/")
driver.find_element_by_id('searchTerm').send_keys('All')
driver.find_element_by_id('btnSearch').click()
time.sleep(5)
for item in driver.find_elements_by_xpath('//td/a'):
fresh = item.get_attribute("href").replace("javascript:getDetail(","")
print(link + fresh.replace(")",""))
driver.quit()
但是,这个新创建的链接将我带到不同的目的地。
FYC,原始链接嵌入在如下元素中:
<td><a href="javascript:getDetail(19978)">GOLD DUST FLYING SERVICE, INC.</a></td>
【问题讨论】:
-
我对接受哪个答案感到非常困惑,因为两个蟒蛇巨头在下面给出的答案都很有魅力。
-
如果我出错了,不要责骂我或采取其他方式。安德森爵士首先给出了答案,所以我会接受它。不过,我对这两个答案都投了赞成票。
-
别担心。重要的是问题解决了。谢谢你的好问题!
标签: python-3.x selenium selenium-webdriver web-scraping web-crawler