浏览器抓取网页(获取浏览器窗口的基本信息获取当前窗口网页标题title)

优采云 发布时间: 2022-02-10 10:26

  浏览器抓取网页(获取浏览器窗口的基本信息获取当前窗口网页标题title)

  一、获取浏览器窗口的基本信息1.获取当前窗口的网页标题

  title 属性用于获取当前窗口网页的标题

  2.获取当前窗口网页url

  current_url 属性用于获取当前窗口网页的url

  3.获取当前窗口句柄

  current_window_handle 属性用于获取当前窗口的句柄,句柄是窗口的标识符,可用于窗口切换

  4.获取所有当前打开窗口的句柄

  window_handles 属性用于获取浏览器打开的所有窗口的句柄列表

  测试代码:

  1# 使用驱动打开浏览器

2driver = webdriver.Chrome("./chromedriver")

3# 打开百度首页

4driver.get("https://www.baidu.com")

5# 预设js代码,打开搜狗网

6js = 'window.open("https://www.sogou.com");'

7# 执行js代码(具体会在下章介绍)

8driver.execute_script(js)

9# 获取当前窗口网页url

10print(driver.current_url)

11# 获取浏览器所有窗口句柄

12print(driver.window_handles)

13# 获取当前窗口句柄

14print(driver.current_window_handle)

15# 获取当前网页的标题

16print(driver.title)

17

18

19

  测试输出:

  1https://www.baidu.com/

2['CDwindow-00EE4D00ED151A77C5A293867F*敏*感*词*005F', 'CDwindow-C1AFC2E0142E307E78DDDF0625A556EE']

3CDwindow-00EE4D00ED151A77C5A293867F*敏*感*词*005F

4百度一下,你就知道

5

6

  二、浏览器打开多个网页时切换窗口

  当我们有多个网页窗口时,需要先获取所有的窗口句柄,然后使用switch_to.window(handle)函数来切换窗口。句柄是您要跳转到的窗口的句柄。

  **注意:** WebDriver 对象中的 switch_to_window() 方法已被弃用,应使用 switch_to.window(handle) 方法

  测试代码:

  1# 使用驱动打开浏览器

2driver = webdriver.Chrome("./chromedriver")

3# 打开百度首页

4driver.get("https://www.baidu.com")

5# 打开新窗口搜狗网

6js = 'window.open("https://www.sogou.com");'

7driver.execute_script(js)

8# 获取浏览器所有窗口句柄

9handles = driver.window_handles

10print(handles)

11print("当前网页为:%s" % driver.title)

12# 跳转至第二个窗口,即搜狗网

13driver.switch_to.window(handles[1])

14print("当前网页为:%s" % driver.title)

15

16

  输出结果:

  1['CDwindow-CB98BE007FA7A8004A9FE60D1AD9F621', 'CDwindow-27928387C7A61447B9BF2FF3AAEF6E49']

2当前网页为:百度一下,你就知道

3当前网页为:搜狗搜索引擎 - 上网从搜狗开始

4

5

  三、操作窗口前进、后退、关闭操作1.返回

  back() 方法是操作窗口返回一个网页,相当于点击浏览器的返回按钮

  测试代码:

  1# 使用驱动打开浏览器

2driver = webdriver.Chrome("./chromedriver")

3# 打开百度首页

4driver.get("https://www.baidu.com")

5print("打开第一个网页,当前窗口:%s" % driver.title)

6driver.get("https://www.sogou.com")

7print("打开新网页,当前窗口:%s" % driver.title)

8driver.back()

9print("后退,当前窗口:%s" % driver.title)

10

11

  测试输出:

  1打开第一个网页,当前窗口:百度一下,你就知道

2打开新网页,当前窗口:搜狗搜索引擎 - 上网从搜狗开始

3后退,当前窗口:百度一下,你就知道

4

5

  2.前进

  forward() 方法是操作窗口前进一个网页,相当于一个浏览器的前进按钮有一个年龄

  测试代码:

  1# 使用驱动打开浏览器

2driver = webdriver.Chrome("./chromedriver")

3# 打开百度首页

4driver.get("https://www.baidu.com")

5print("打开第一个网页,当前窗口:%s" % driver.title)

6driver.get("https://www.sogou.com")

7print("打开新网页,当前窗口:%s" % driver.title)

8driver.back()

9print("后退,当前窗口:%s" % driver.title)

10driver.forward()

11print("前进,当前窗口:%s" % driver.title)

12

13

  测试输出:

  1打开第一个网页,当前窗口:百度一下,你就知道

2打开新网页,当前窗口:搜狗搜索引擎 - 上网从搜狗开始

3后退,当前窗口:百度一下,你就知道

4前进,当前窗口:搜狗搜索引擎 - 上网从搜狗开始

5

6

  3.关闭

  close() 方法关闭当前窗口

  测试代码:

  1# 使用驱动打开浏览器

2driver = webdriver.Chrome("./chromedriver")

3# 打开百度首页

4driver.get("https://www.baidu.com")

5# 运行js打开新窗口

6js = 'window.open("https://www.sogou.com")'

7driver.execute_script(js)

8# 打印窗口个数,为2个

9print("关闭窗口前:%s" % driver.window_handles)

10# 关闭当前窗口

11driver.close()

12# 打印窗口个数,为1个

13print("关闭窗口后:%s" % driver.window_handles)

14

15

  检测结果:

  selenium 运行 js 代码打开新窗口后,如果不执行窗口切换功能,当前窗口仍然是第一个窗口,而不是新打开的窗口。因此,上述示例代码中关闭了百度窗口。

  1关闭窗口前:['CDwindow-6176BE40CAE4EEDCEB6171B263C143F3', 'CDwindow-54B78A28638EF41125901E6774936E9A']

2关闭窗口后:['CDwindow-54B78A28638EF41125901E6774936E9A']

3

4

  四、切换帧

  网页中会有收录子模块的标签。当我们打印源代码时,只会出现主模块的代码,不会出现标签中收录的子网页的源代码。如果我们想获取子模块的代码,可以使用switch_to.frame()方法来切换frame模块。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线