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

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

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


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


注意环境变量添加好后,需要重启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) #打印网页源代码


展开阅读全文

没有更多推荐了,返回首页