selang怎么用?掌握这几个技巧,轻松玩转selang!

天美租号

今天跟大家聊聊我搞的这个“selang”,就是个简单的尝试,看看能不能用Python结合Selenium做一个网页自动化的小工具。

一开始的想法:

最初就是觉得,有些网页操作太重复,比如每天都要登录某个网站,点几个按钮,才能看到我想要的信息。 烦死!所以就想着,能不能用程序自动完成这些操作?

selang怎么用?掌握这几个技巧,轻松玩转selang!

准备工作:

  • 得装Python,这个不用多说,我是用的Python 3.
  • 然后,装Selenium,直接pip install selenium 就行。
  • 最关键的,还得有浏览器驱动。 我用的是Chrome,所以就下ChromeDriver,要注意版本要对应你的Chrome浏览器版本。下好之后,把ChromeDriver放到Python的Scripts目录下。

selang怎么用?掌握这几个技巧,轻松玩转selang!

开始写代码:

第一步,导入selenium:

from selenium import webdriver

第二步,创建浏览器对象:

driver = *()

这一步如果报错,多半是ChromeDriver没放对位置,或者版本不对。

selang怎么用?掌握这几个技巧,轻松玩转selang!

第三步,打开网页:

*("你的目标网址")

把“你的目标网址”换成你要操作的网页。

第四步,定位网页元素:

这步最重要,也最麻烦。要找到你需要点击的按钮,或者要填写的输入框。 Selenium提供很多定位方法,比如:

    selang怎么用?掌握这几个技巧,轻松玩转selang!

  • find_element_by_id() 通过id定位
  • find_element_by_name() 通过name定位
  • find_element_by_xpath() 通过xpath定位
  • find_element_by_css_selector() 通过css selector定位

我是各种方法都试,哪个好用用哪个。 xpath有时候挺方便的,但要注意网页结构变化的话,xpath可能就失效。

selang怎么用?掌握这几个技巧,轻松玩转selang!

第五步,操作网页元素:

定位到元素之后,就可以进行操作,比如:

  • 点击元素
  • *_keys("要输入的内容") 输入内容
  • 提交表单
  • selang怎么用?掌握这几个技巧,轻松玩转selang!

举个例子,登录某个网站:

假设网页上有个id是“username”的输入框,用来输入用户名,还有个id是“password”的输入框,用来输入密码, 还有一个id是“login_button”的按钮,用来登录。

代码大概是这样:


selang怎么用?掌握这几个技巧,轻松玩转selang!

username_input = *_element_by_id("username")

password_input = *_element_by_id("password")

login_button = *_element_by_id("login_button")

username_*_keys("你的用户名")

password_*_keys("你的密码")

login_*()

selang怎么用?掌握这几个技巧,轻松玩转selang!

遇到的一些坑:

  • 有些网页会动态加载内容,导致你用Selenium定位元素的时候,元素还没出现。 这时候可以用 强制等待几秒,或者用WebDriverWait 配合 expected_conditions 来智能等待。
  • 有些网站会反爬虫,比如会检测你的请求头,或者会用验证码。 这时候就要想办法绕过这些限制。 我一般是先修改请求头,伪装成正常用户, 如果有验证码,就只能手动输入(或者用一些图像识别的库,但比较麻烦)。
  • selang怎么用?掌握这几个技巧,轻松玩转selang!

关闭浏览器:

程序运行完,记得关闭浏览器,不然会一直开着。

用Selenium做网页自动化,还是挺有意思的。 可以省去很多重复性的操作。 也有一些坑要踩,需要耐心调试。 我现在用“selang”自动登录几个常用的网站,每天看看数据,感觉省不少时间。

selang怎么用?掌握这几个技巧,轻松玩转selang!

下一步计划:

想把“selang”做成一个更通用的工具,可以配置化,用户只需要填写一些简单的参数,就可以自动完成网页操作。 还在学习中,希望以后能跟大家分享更多。

发表评论

快捷回复: 表情:
AddoilApplauseBadlaughBombCoffeeFabulousFacepalmFecesFrownHeyhaInsidiousKeepFightingNoProbPigHeadShockedSinistersmileSlapSocialSweatTolaughWatermelonWittyWowYeahYellowdog
验证码
评论列表 (暂无评论,22人围观)

还没有评论,来说两句吧...