在Selenium Python中获取URL

rks48beu  于 2023-02-12  发布在  Python
关注(0)|答案(1)|浏览(243)

我是一个非常新的Python,我希望刮以下网站:Link
我认为Selenium可能是正确的工具,我开始编写以下代码:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

path='http://planning.hackney.gov.uk/Northgate/PlanningExplorer/generalsearch.aspx'

browser = webdriver.Firefox()
browser.get(path)

elem = browser.find_element_by_id('txtPostCode')
elem.clear()
elem.send_keys("E9 7JP")
elem.send_keys(Keys.RETURN)

print (browser.current_url)

到目前为止一切顺利,它的工作.但是,browser.current_url的返回值不完全是我的浏览器的url栏中显示的.我的意思是脚本的返回值是:
//planning.hackney.gov.uk/Northgate/PlanningExplorer/generalsearch.aspx
然而,在浏览器的网址是显示我这一个:
//planning.hackney.gov.uk/Northgate/PlanningExplorer/Generic/StdResults.aspx?PT=Planning%20Applications%20On-Line&SC=Postcode%20is%20E9%207JP&FT=Planning%20Application%20Search%20Results&XMLSIDE=/Northgate/PlanningExplorer/SiteFiles/Skins/Hackney/Menus/PL.xml&XSLTemplate=/Northgate/PlanningExplorer/SiteFiles/Skins/Hackney/xslt/PL/PLResults.xslt&PS=10&XMLLoc=/Northgate/PlanningExplorer/Generic/XMLtemp/j5jzxiwxklgslnam4qffypw5/052dd052-3993-4f10-83aa-dd0c6c326676.xml
现在我想知道如何得到这个地址?!
多谢了!

ia2d9nvy

ia2d9nvy1#

在检查脚本返回的URL和浏览器显示的URL之间是否进行了任何其他请求。在Keys.RETURN后发送的请求URL会在URL中添加会话标识符,这可能是您获得不同URL的原因。
我有这个剧本

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
chromepath='chrome_driver_path' //change this to your chromedriver path
driver = webdriver.Chrome(chromepath)

driver.get('http://planning.hackney.gov.uk/Northgate/PlanningExplorer/generalsearch.aspx')

print(driver.current_url)

elem = driver.find_element_by_id('txtPostCode')
elem.clear()
elem.send_keys("E9 7JP")
elem.send_keys(Keys.RETURN)

print (driver.current_url)

driver.quit()

按键代码是从您的代码本身复制的。我从浏览器和脚本中得到了相同的URL
脚本提供此URL -Link浏览器提供此相同URL -Copied Manually

相关问题