Python爬虫入门——3.5 Selenium 模拟浏览器

声明:参考资料“ 从零开始学Python网络爬虫 ”作者:罗攀,蒋仟机械工业出版社

Selenium浏览器是一个强大的网络数据采集工具,它可以让浏览器自动加载网络数据,从而来获取我们需要的信息。我们可以在朋友pycharm里面安装Selenium库。在Windows下安装Selenium模块教程如下:首先在pycharm打开 File -> setting -> Project untitled ->Project Interpreter  点击 “ + ” 加号,在弹出的界面搜索栏输入 Selenium,然后单击install Package即可:

Python爬虫入门——3.5 Selenium 模拟浏览器_第1张图片

Python爬虫入门——3.5 Selenium 模拟浏览器_第2张图片 

由于 Selenium没有自带浏览器所以我们,我们需要下载浏览器来支持Selenium。通常有Chrome、Firefox、PhantomJS等用于pc端。由于PhantomJS是无界面的,速度快、开销小。是非常理想的,但是最新版本的Selenium已经不支持PhantomJS了,而Chrome浏览器跟Firefox浏览器也出了最新的Headless Chrome模式,即你在使用Selenium时,不会弹出浏览器页面。首先你要确保你的电脑安装有Chrome浏览器,以及ChromeDriver(连接:ChromeDriver)。下载完ChromeDriver之后惊奇解压,然后将Chromedriver.exe文件拷贝到Python所在的安装目录即可。然后在使用时需要进行相应的配置:

相应教程链接:链接1、连接2、连接3

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
#上面三行是为了使用Chrome的headless模式
#下面三行是为了打印百度浏览器的首页
driver = webdriver.Chrome(chrome_options = chrome_options)#指定浏览器为chrom浏览器
driver.get('https://www.baidu.com')
print(driver.page_source)

接下来我们使用Selenium来打印百度搜索的Python的第一页内容

from selenium import webdriver
#from selenium.webdriver.chrome.options import Options
#chrome_options = Options()
#chrome_options.add_argument('--headless')
#chrome_options.add_argument('--disable-gpu')
#driver = webdriver.Chrome(chrome_options = chrome_options)
driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')
driver.find_element_by_id('kw').clear()
driver.find_element_by_id('kw').send_keys('python')
driver.find_element_by_id('su').click()
print(driver.page_source)

1、首先导入需要用到的库selenium,然后定义浏览器为Chrome浏览器

2、利用.get 来获取网址

3、利用 find_element_by_id 来定位搜索框,并将搜索框里面的内容 clear()

4、继续利用find_element_by_id 来定位搜索按钮  “百度一下”  并将其点击click一下

5、将搜索到的内容打印出来。

6、加了注释的为浏览器的headless浏览模式,有头浏览模式你可以观察selenium是如何自动打开浏览器,自动搜索内容的过程 

 7、关于如何获取 find_element_by_id(“  ”)里面的内容的:在搜索框右键->检查,然后就可以看到搜索框的  ID

Python爬虫入门——3.5 Selenium 模拟浏览器_第3张图片

 

 

你可能感兴趣的:(Python爬虫入门,Python爬虫)