Selenium 是一个用于浏览器自动化测试的框架,可以用来爬取任何网页上看到的数据。
selinim,京东淘宝反爬严重
http://http://npm.taobao.org/mirrors/chromedriver/2.33/
环境变量设置:我的电脑-右键属性-高级设置-环境变量--
注意环境变量添加好后,需要重启pycharm,不然报错。
环境搭建好后,环境测试代码如下:
使用代码测试:
from selenium import webdriver #导入包
driver = webdriver.Chrome() #打开Chrome浏览器
driver.get('http://www.baidu.com') #输入url,打开百度首页
运行结果如下
3 Selenium的优缺点
优点:Selenium可以爬取任何网页的任何内容,因为它是通过浏览器访问的方式进行数据的爬取,没有网站会拒绝浏览器的访问。
缺点:时间以及内存消耗太大,所以大规模爬虫不会用。
webdriver相当于浏览器,我们选择chrome浏览器。
4 Selenium的操作
driver.find_element_by_name()
查找符合条件的单个元素
driver.find_elements_by_name()
查找符合条件的一组元素
使用代码测试:
from selenium import webdriver #导入包
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome() #打开Chrome浏览器,大写
driver.get('http://www.baidu.com') #输入url,打开百度首页
elem = driver.find_element_by_xpath('//*[@id="kw"]') #查找输入框,kw用双引号
elem.send_keys('刘亦菲',Keys.ENTER) #模拟点击回车
print(driver.page_source) #打印网页源代码
代码运行结果如下:
指定无头浏览器
安装
使用代码测试:
from selenium import webdriver #导入包
from selenium.webdriver.common.keys import Keys
driver = webdriver.PhantomJS() #打开无头浏览器
driver.get('http://www.baidu.com') #输入url,打开百度首页
elem = driver.find_element_by_xpath('//*[@id="kw"]') #查找输入框,kw用双引号
elem.send_keys('刘亦菲',Keys.ENTER) #模拟点击回车
print(driver.page_source) #打印网页源代码