基于selenium模块的爬虫实践问题记录

一.一般情况可以直接使用requests模块配合bs4模块直接爬取数据

二.遇到网页源代码和网页元素审查不一样的情况,即有js动态加载的情况,我使用了selenium模块配合歌浏览器 headless(无头模式)来解决

中途遇到一些坑现在记录如下:

1.使用selenium模拟网页运行需要火狐浏览器或谷歌浏览器配合,所有先下载好要用的浏览器,然后需要下载一个chromedriver.exe(谷歌浏览器启动需要)https://sites.google.com/a/chromium.org/chromedriver/(我直接下载这个里的)

http://chromedriver.storage.googleapis.com/index.html (里面只有32位的,不知道为什么,不过下载后可以用selenium开启浏览器,也就没再深究。需要下载和谷歌浏览器对应的版本

geckodriver.exe(火狐浏览器启动需要)

安装三大浏览器驱动driver

     1.chromedriver 下载地址:https://code.google.com/p/chromedriver/downloads/list (可能需要墙,反正我没打开)

     2.Firefox的驱动geckodriver 下载地址:https://github.com/mozilla/geckodriver/releases/

     3.IE的驱动IEdriver 下载地址:http://www.nuget.org/packages/Selenium.WebDriver.IEDriver/

注意:下载解压后,将chromedriver.exe , geckodriver.exe , Iedriver.exe发到Python的安装目录,例如 D:\python 。 然后再将Python的安装目录添加到系统环境变量的Path下面。

然后打开Python IDLE分别输入以下代码来启动不同的浏览器

启动谷歌浏览器

from selenium import webdriver

browser = webdriver.Chrome()
browser.get('http://www.baidu.com/')

启动火狐浏览器

from selenium import webdriver

browser = webdriver.Firefox()
browser.get('http://www.baidu.com/')


启动IE浏览器

from selenium import webdriver

browser = webdriver.Ie()
browser.get('http://www.baidu.com/')

 

Python设置火狐浏览器谷歌浏览器 headless(无头模式)

firefox和chrome都有了无头模式,也就是没有界面的浏览器,在内存中执行。

firefox:

from selenium import webdriver
 
options = webdriver.FirefoxOptions()
options.add_argument('-headless')
browser = webdriver.Firefox(firefox_options=options)
browser.get('http://www.baidu.com/')


chrome:

Chrome_options = webdriver.ChromeOptions()
Chrome_options.add_argument('-headless')
drive = webdriver.Chrome(chrome_options=Chrome_options)
drive.get('http://www.baidu.com/')

设置好headless后运行,发现会报错

根据源码的提示发现使用chrome_options 时会将chrome_options 值传给options,然后在给一个警告信息,根据错误信息已经源码的注解了解到未来options会取代chrome_options,所以我们只需要chrome_options改成options即可

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')
browser = webdriver.Chrome(options=chrome_options)
browser.get('http://www.baidu.com')

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值