[Python 爬虫之路3] 使用seletom,爬取淘女郎-美人库的内容
来源:互联网 发布:linux实现mac字体 编辑:程序博客网 时间:2024/04/28 23:49
关键点
- 显式和隐式的停止
- 这次只用到了对象的点击,之后还会用到表单填写等更复杂的东西
# 目标:# 对淘女郎-美人库页面的美人信息和图片进行抓取# 1.创建新的目录,用对应的用户名存取每一个照片# 使用 seletom 来进行动态的抓取__author__ = 'XZ'# -*- coding:utf-8 -*-# 使得python支持中文import requestsfrom bs4 import BeautifulSoupfrom selenium import webdriverfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as ECfrom selenium.webdriver.common.by import Byimport osclass TBMR: # 初始化,传入基本部分和参数部分 def __init__(self): pass # 获取首页的页面信息 def getMMsInfo(self): url = 'https://www.taobao.com/markets/mm/mmku' driver = webdriver.Chrome() driver.get(url) try: element = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CLASS_NAME,"skip-wrap"))) # 查看10秒内,是否有页码部分出现 print("成功提取页码") soup = BeautifulSoup(driver.page_source,"html.parser") # 获取到了全部的页数 pageNum = soup.find('span',class_ = "skip-wrap").find('em').text print("开始爬取头像!") # 同时得保存第一出现的图片,因为观察可得,原网页当前页是不能点击的,所以第一次不能通过点击完成 # 获取网页内容 soup = BeautifulSoup(driver.page_source, "html.parser") mms = soup.find_all('div', class_="cons_li") # 对于每一个mm对象,获取其名字和头像 self.saveMMS(mms) # 从第2页开始便利点击 for i in range(2,int(pageNum)): # 点击当前页 curpage = driver.find_element_by_link_text(str(i)) curpage.click() # 等待当前页加载完成 pics = WebDriverWait(driver,10).until(EC.presence_of_element_located((By.CLASS_NAME,"skip-wrap"))) # 获取网页内容 soup = BeautifulSoup(driver.page_source,"html.parser") mms = soup.find_all('div',class_ = "cons_li") # 对于每一个mm对象,获取其名字和头像 self.saveMMS(mms) print("当前完成:第"+str(i)+"页") finally: driver.quit() # 从一个mms对象保存 def saveMMS(self,mms): for mm in mms: name = mm.find('div', class_="item_name").find("p").text img = mm.find('div', class_='item_img').find('img').get("src") # 如果路径不存在,设置存储路径 dirpath = os.getcwd() + "\\美人\\" if not os.path.exists(dirpath): os.makedirs(dirpath) namepath = os.getcwd() + "\\美人\\" + name + ".jpg" self.saveImg(img, namepath) # 保存一张照片 def saveImg(self, imageURL, fileName): if not 'http' in imageURL: # 去掉src不格式的图片:例如 //img.alicdn.com/imgextra/i3/728310618/TB2s7glc3NlpuFjy0FfXXX3CpXa_!!728310618-2-beehive-scenes.png_468x468q75.jpg,是无法识别的 return u = requests.get(imageURL,stream = True).content try: with open(fileName,'wb') as jpg: jpg.write(u) except IOError: print("写入图片错误!") # 开始函数 def start(self): print("抓起淘女郎-美人库第一页的内容,并存储于\" 美人 \" 文件夹下") self.getMMsInfo() print("下载完成!")tbmm = TBMR()tbmm.start();
0 0
- [Python 爬虫之路3] 使用seletom,爬取淘女郎-美人库的内容
- python爬虫 爬取淘女郎介绍以及照片
- python爬虫学习之路(2)_ 淘宝淘女郎相册打包下载
- Python爬虫入门-利用scrapy爬取淘女郎照片
- [python3.6]爬虫实战之爬取淘女郎图片
- python第一弹 爬虫淘女郎图片
- Python爬虫实战一之使用Beautiful Soup抓取‘谣言百科’的分类内容
- Python爬虫:动态网页抓取淘宝“淘女郎”照片
- Python抓取淘宝美人库
- Python爬虫入门三之Urllib库的基本使用
- Python爬虫入门三之Urllib库的基本使用
- Python爬虫入门三之Urllib库的基本使用
- Python爬虫入门一之Urllib库的基本使用
- Python爬虫入门1之urllib库的使用
- Python爬虫入门三之Urllib库的基本使用
- Python爬虫入门三之Urllib库的基本使用
- python爬虫入门三之Urllib库的基本使用
- Python爬虫入门之Urllib库的基本使用 (三)
- 数据结构实验之链表九:双向链表
- 216. Combination Sum III
- QT类学习系列(5)- QString用法总结( setNum, number 函数)
- 安装my eclipse2015(破解版),附带资源。
- 图解mapreduce
- [Python 爬虫之路3] 使用seletom,爬取淘女郎-美人库的内容
- 给eclipse配置主题
- 安装oracle11版本报错此先决条件将测试系统物理内存总量是否至少为 922MB
- iOS基础——通过案例学知识之LaunchScreen、APPIcon、StatusBar、UIScrollView、UIPageControl
- ssh 免密码登录linux
- Java常用工具类(二)字符串
- android杂碎笔记
- Java中的23中设计模式
- QT问题系列(7)