使用python+selenium模拟点击
通过Xpath进行匹配出下一个文章或者下一页的链接后chrome.find_element_by_xpath("//li[@id='sogou_vr_11002301_box_0']/dl[3]/dd/a").click()
若直接点击后通过
chrome.page_source.encode("gbk", "ignore").decode("gbk")
获取源码,此时获取的并不是click
执行之后的页面的源码,而是上一个页面的源码。
此时可通过判断新的句柄是否是当前句柄,如果新的pay_window
句柄不是当前句柄,用switch_to_window
方法切换
#####获取所有页面句柄
all_Handles = chrome.window_handles
#####如果新的pay_window句柄不是当前句柄,用switch_to_window方法切换
for pay_window in all_Handles:
if pay_window != normal_window:
chrome.switch_to_window(pay_window)
# time.sleep(10)
chrome.find_element_by_xpath("//div[@class='weui_media_bd']/h4[@class='weui_media_title']").click()
# print(single_article_url)
time.sleep(2)
source = chrome.page_source.encode("gbk", "ignore").decode("gbk")
print(source)
此时就可以解决click
点击后下一页源码获取不到的问题。