在爬取美团网上的信息时,有如下需求:
我们希望在打开一个城市的酒店搜索页面的时候,可以将这个页面中的所有的酒店的名称和酒店的其他信息依次获取到,然后将其标题对应的href 分别获取到,并且点击href 之后,再获取详情页中的电话。
我已经测试成功了,再做的时候,遇到了一个问题,就是我们打开链接的时候,链接会在原来的链接上打开,打开之后的页面是详情页,无法点击下一页按钮,这样就会报错。所以我采取了以下的办法来解决这个问题.
# 这一步是在原来的页面的基础上打开一个新的页面,需要注意Url的格式
x ="http://www.baidu.com"
js ='window.open('+'"'+x+'"'+')'
driver.execute_script(js)
# 获取到全部的句柄--> 转换句柄 ---> 关闭选项卡
handles = driver.window_handles
driver.switch_to.window(handles[-1])
time.sleep(3)
driver.close()
# 到这里我们的事件句柄在最后一页,但是呢,最后一页已经被我close掉了,所以如果希望从一开始的url中获取下一页的话,我们需要回到第一个选项卡
driver.switch_to.window(a[0])
这样问题就可以解决了。