8 使用自动化神器Selenium爬取动态网页(案例三:爬取淘宝)

Selenium 是一个用于浏览器自动化测试的框架,可以用来爬取任何网页上看到的数据。

selinim,京东淘宝反爬严重

8 使用自动化神器Selenium爬取动态网页(案例三:爬取淘宝)_第1张图片
image
8 使用自动化神器Selenium爬取动态网页(案例三:爬取淘宝)_第2张图片
image

http://http://npm.taobao.org/mirrors/chromedriver/2.33/

8 使用自动化神器Selenium爬取动态网页(案例三:爬取淘宝)_第3张图片
image

环境变量设置:我的电脑-右键属性-高级设置-环境变量--

8 使用自动化神器Selenium爬取动态网页(案例三:爬取淘宝)_第4张图片
image

注意环境变量添加好后,需要重启pycharm,不然报错。

环境搭建好后,环境测试代码如下:

使用代码测试:

from selenium import webdriver #导入包

driver = webdriver.Chrome() #打开Chrome浏览器

driver.get('http://www.baidu.com') #输入url,打开百度首页


运行结果如下

8 使用自动化神器Selenium爬取动态网页(案例三:爬取淘宝)_第5张图片
image

3 Selenium的优缺点

优点:Selenium可以爬取任何网页的任何内容,因为它是通过浏览器访问的方式进行数据的爬取,没有网站会拒绝浏览器的访问。

缺点:时间以及内存消耗太大,所以大规模爬虫不会用。


8 使用自动化神器Selenium爬取动态网页(案例三:爬取淘宝)_第6张图片
image

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) #打印网页源代码

代码运行结果如下:

8 使用自动化神器Selenium爬取动态网页(案例三:爬取淘宝)_第7张图片
image

指定无头浏览器

安装

8 使用自动化神器Selenium爬取动态网页(案例三:爬取淘宝)_第8张图片
image

使用代码测试:

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) #打印网页源代码


你可能感兴趣的:(8 使用自动化神器Selenium爬取动态网页(案例三:爬取淘宝))