python网络爬虫学习笔记之三 Selenium入门

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/bowei026/article/details/90724538

抓取动态的网页内容主要有两种办法,一种是通过开发者工具找到动态内容的接口,通过分析接口的参数和返回值来爬取网站的数据。另外一种是通过模拟浏览器来抓取数据,python的Selenium库就可以通过代码来模拟浏览器抓取数据。

一、概述

运行Selenium需要依赖于Python的selenium库,以及浏览器对应驱动器(WebDriver)。

安装selenium库

pip install selenium
项目地址: https://pypi.org/project/selenium/

下载WebDriver

WebDriver可以简单的理解为浏览器插件,是可执行的程序。不同的浏览器对应的WebDriver是不同的,比如火狐浏览器的WebDriver是geckodriver,Windows环境下是geckodriver.exe文件;Chrome浏览器的WebDriver是Chromedriver,Windows环境下是chromedriver.exe文件。

Webdriver下载之后解压缩,将exe文件复制到python目录下(只要目录在path环境变量中就可以)

火狐的webdriver下载
https://github.com/mozilla/geckodriver/ 

google chrome 的webdriver下载(按浏览器版本下载对应的webdriver,如果Chrome的版本与chromedriver.exe的版本不匹配,那么selenium的python程序会运行失败的)
http://chromedriver.storage.googleapis.com/index.html

二、例子

例子1:
from selenium import webdriver

browser = webdriver.Chrome()
browser.get('http://www.baidu.com')
assert '百度一下' in browser.title

#elem = browser.find_element_by_name("wd")
elem = browser.find_element_by_xpath('//*[@id="kw"]')
elem.send_keys("selenium")

btn = browser.find_element_by_id("su")
btn.click()

#browser.quit()

例子2:
import  unittest
from selenium import webdriver


class BaiduTest(unittest.TestCase):

    def setUp(self):
        self.browser = webdriver.Firefox()
        self.browser.get("http://www.baidu.com")
        #self.addCleanup(self.browser.quit)

    def testTitle(self):
        self.assertIn("百度一下", self.browser.title)

    def testSearch(self):
        #self.browser.get("http://www.baidu.com")
        searchInput = self.browser.find_element_by_id("kw")
        searchInput.send_keys("selenium")

        searchBtn = self.browser.find_element_by_id("su")
        searchBtn.click()

        self.assertIn("selenium", self.browser.current_url)


if __name__ == '__main__':
    unittest.main(verbosity=2)

其他资源:
https://www.seleniumhq.org/download/
http://ftp.mozilla.org/pub/firefox/releases/ 火狐版本
https://www.cnblogs.com/givemelove/p/8482361.html 火狐、谷歌软件及webdriver

本文内容到此结束,更多内容可关注公众号和个人微信号:

猜你喜欢

转载自blog.csdn.net/bowei026/article/details/90724538