我正在嘗試抓取此 url,但是當程式運行并打開 chrome 頁面時,我在 driver.get() 中輸入的 url 會發生更改。什么可能導致它發生變化?
我想打開此鏈接并獲取特定內容,但 url 更改并顯示錯誤,因為更改的 url 上不存在此類。
這是我的代碼:
s=Service(ChromeDriverManager().install())
driver = webdriver.Chrome(service=s)
driver.get("https://www.booking.com/hotel/pk/one-bahawalpur.html?aid=378266&label=bdot-Os1*aFx2GVFdW3rxGd0MYQS541115605091:pl:ta:p1:p22,563,000:ac:ap:neg:fi:tikwd-334108349:lp1011080:li:dec:dm:ppccp=UmFuZG9tSVYkc2RlIyh9YYriJK-Ikd_dLBPOo0BdMww&sid=0a2d2e37ba101e6b9547da95c4a30c48&all_sr_blocks=41645002_248999805_0_1_0;checkin=2022-11-10;checkout=2022-11-11;dest_id=-2755460;dest_type=city;dist=0;group_adults=2;group_children=0;hapos=1;highlighted_blocks=41645002_248999805_0_1_0;hpos=1;matching_block_id=41645002_248999805_0_1_0;no_rooms=1;req_adults=2;req_children=0;room1=A,A;sb_price_type=total;sr_order=popularity;sr_pri_blocks=41645002_248999805_0_1_0__1120000;srepoch=1668070223;srpvid=e9da3e27383900b4;type=total;ucfs=1&#hotelTmpl")
print(driver.find_element(by=By.CLASS_NAME, value="d2fee87262"))
打開chrome頁面后的url如下: https ://www.booking.com/searchresults.html?aid=378266&label=bdot-Os1*aFx2GVFdW3rxGd0MYQS541115605091:pl:ta:p1:p22,563,000:ac:ap :neg:fi:tikwd-334108349:lp1011080:li:dec:dm:ppccp=UmFuZG9tSVYkc2RlIyh9YYriJK-Ikd_dLBPOo0BdMww&sid=63b32ef8c1d53ae0613d71baf62c3e56&checkin=2022-11-10&checkout=2022-11-11&city=-2755460&group_adults=2&group_children=0&highlighted_hotels=416450&hlrd=with_av&keep_landing=1&no_rooms= 1&redirected=1&source=hotel&srpvid=e9da3e27383900b4&room1=A,A,;#hotelTmpl
uj5u.com熱心網友回復:
URL 由站點更改。你不能改變它的行為。它將具有新會話的用戶重定向到搜索而不是酒店的頁面。作為一種解決方法,我可以建議在搜索中單擊酒店名稱:
driver.find_element(By.XPATH, '//div[text()="Hotel One Bahawalpur"]').click
將此行放在打開頁面的行和找到元素的行之間。
另外我建議您在 linedriver.implicitly_wait(10)之后添加一行driver = webdriver.Chrome(service=s)。這將提高刮板的穩定性,因為它使 selenium 在頁面上出現元素時等待。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/531041.html
