[Python 爬虫之路3] 使用seletom,爬取淘女郎-美人库的内容
2017-03-03 23:08
302 查看
关键点
显式和隐式的停止
这次只用到了对象的点击,之后还会用到表单填写等更复杂的东西
显式和隐式的停止
这次只用到了对象的点击,之后还会用到表单填写等更复杂的东西
# 目标: # 对淘女郎-美人库页面的美人信息和图片进行抓取 # 1.创建新的目录,用对应的用户名存取每一个照片 # 使用 seletom 来进行动态的抓取 __author__ = 'XZ' # -*- coding:utf-8 -*- # 使得python支持中文 import requests from bs4 import BeautifulSoup from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By import os class 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();
相关文章推荐
- windows下使用python的scrapy爬虫框架,爬取个人博客文章内容信息
- Python使用Srapy框架爬虫模拟登陆并抓取知乎内容
- Python爬虫使用Selenium+PhantomJS抓取Ajax和动态HTML内容
- Python爬虫实战一之使用Beautiful Soup抓取‘谣言百科’的分类内容
- 萌新的Python学习日记 - 爬虫无影 - 使用BeautifulSoup + css selector 抓取自己想要网页内容
- Python爬虫使用Selenium+PhantomJS抓取Ajax和动态HTML内容
- python3 [爬虫入门实战] 爬虫之使用selenium 爬取百度招聘内容并存mongodb
- Python 爬虫4——使用正则表达式筛选内容
- 零基础写python爬虫之使用urllib2组件抓取网页内容
- Python使用Srapy框架爬虫模拟登陆并抓取知乎内容
- python爬虫爬取指定用户微博图片及内容,并进行微博分类及使用习惯分析,生成可视化图表
- python爬虫之使用urllib2组件抓取网页内容
- Python爬虫使用Selenium+PhantomJS抓取Ajax和动态HTML内容
- python爬虫学习之路(2)_ 淘宝淘女郎相册打包下载
- Python 爬虫4——使用正则表达式筛选内容
- Python爬虫使用Selenium+PhantomJS抓取Ajax和动态HTML内容
- python3.4学习笔记(十三) 网络爬虫实例代码,使用pyspider抓取多牛投资吧里面的文章信息,抓取政府网新闻内容
- 萌新的Python学习日记 - 爬虫无影 - 使用BeautifulSoup + css selector 抓取动态网页内容:Knewone
- 零基础写python爬虫之使用urllib2组件抓取网页内容
- python爬虫主要就是五个模块:爬虫启动入口模块,URL管理器存放已经爬虫的URL和待爬虫URL列表,html下载器,html解析器,html输出器 同时可以掌握到urllib2的使用、bs4(BeautifulSoup)页面解析器、re正则表达式、urlparse、python基础知识回顾(set集合操作)等相关内容。