使用selenium实现简单网络爬虫抓取MM图片

  撸主听说有个网站叫他趣,里面有个社区,其中有一项叫他趣girl,撸主点进去看了下,还真不错啊,图文并茂,宅男们自己去看看就知道啦~

  接下来当然就是爬取这些妹子的图片啦,不仅仅是图片,撸主发现里面的对话也很有意思,于是把对话也一并抓取下来好了。

  那么问题来了,用什么工具呢?在之前的练习中已经用过urllib2,正则表达式匹配实在麻烦,这次来点稍微高级的,试试selenium;

  selenium是什么?其实它是一个web自动化测试的工具,运行起来就跟我们自己操作浏览器差不多,废话不多说,下面开始。

  工具:python2.7 + selenium2 python版

  1 首先导入需要的模块,然后定义本地存放目录

 # coding: utf-8

 from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from time import *
import os
import urllib2 # 文件保存路径
file_path = r'F:\taqu'

  2 然后还是定义3个函数,分别用来为每个girl创建目录,保存每个girl的图片,保存每个girl的文本描述和对话;其中在保存图片的时候还是用到了urllib2

# ------------定义3个函数,用来创建每个girl的目录、保存图片、写入文本描述及对话----------------
def mkdir_for_girl(path, name):
"""
创建以标题命令的目录
:param name: 目录名称
:return: 返回创建的目录路径
"""
path = os.path.join(path, name)
if not os.path.exists(path):
os.mkdir(path)
return path def save_pictures(path, url_list):
"""
保存图片到本地指定文件夹
:param path: 保存图片的文件夹,由mkdir_for_girl返回
:param url_list: 待保存图片的url列表
:return: none
"""
for (index, url) in enumerate(url_list):
try:
print u'%s 正在保存第%d张图片' % (ctime(), index)
pic_name = str(index) + '.jpg'
file_name = os.path.join(path, pic_name)
# 如果存在该图片则不保存
if os.path.exists(file_name):
print u'%s 该图片已经存在' % ctime()
continue
req = urllib2.Request(url, headers={'User-Agent': r'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0'})
data = urllib2.urlopen(req, timeout=30).read()
f = open(file_name, 'wb')
f.write(data)
f.close()
except Exception, e:
print u'%s 第%d张图片保存失败,不处理,跳过继续处理下一张' % (ctime(), index) def write_text(path, info):
"""
在path目录中创建txt文件,将info信息(girl的文本描述和对话)写入txt文件中
:param path: 保存txt文件的目录,由mkdir_for_girl返回
:param info: 要写入txt的文本内容
:return: none
"""
# 创建/打开info.txt文件,并写入内容
filename = os.path.join(path, 'info.txt') with open(filename, 'a+') as fp:
fp.write(info.encode('utf-8'))
fp.write('\n'.encode('utf-8'))
fp.write('\n'.encode('utf-8'))

  3 定义webdirver,打开目标网页,其中切换到目标页面使用了超链接文本定位元素

# -----------------------打开页面,设置超时时间,窗口最大化-----------------------
driver = webdriver.Firefox()
driver.implicitly_wait(10)
driver.maximize_window()
driver.get(r'http://www.taqu.cn/community/') # -----------------------切换到“他趣Girl”页面-----------------------
driver.find_element_by_partial_link_text(u'他趣Girl').click()

  4 由于所有girl都在一个页面中,但是这个页面很长很长,真的很长,需要滑动很久才能滑到底部,为什么要滑动到底部呢?

因为浏览器获取的HTML源码,只有当前窗口已显示元素的代码,未显示部分的代码没有,当然selenium也定位不到那些元素了;

所以说,如果要selenium能找到所有girl,先要把页面滑动到底部,等所有girl都加载完,才能获取到包含所有girl的HTML代码。

  那么问题来了,怎么滑动页面呢,通过浏览器的滚动条,但是滚动条不是HTML元素,selenium不能直接控制,这里就得借助

javascript了,在selenium中执行js代码还是可以的,具体实现看代码:

# -----------------------滑动到窗口最底部,以将所有的girl都刷新出来-----------------------
# 由于页面很长,并且需要不断下拉才会刷新,因此通过javascript来控制器滚动条向下滑动
# 但是一次滑动并不能到达底部,需要多次,那么需要多少次呢?这里采用的方式是不停的向下
# 滑动,每滑动一次,都查询下是否到达底部,怎么查询呢?这是通过查到底部的一个标志图片来判断,
# 如果没找到标志,就说明还没到达底部,需要继续滑动,如果找到就跳出循环
# 为了快速滑动,先设置超时时间为1秒
driver.implicitly_wait(1)
# 不停的滑啊滑
while True:
driver.execute_script("window.scrollTo(0,document.body.scrollHeight)")
try:
# 定位页面底部的一个图片
driver.find_element_by_xpath(".//*[@id='waterfall-loading']/img[@src='/img/no-more.png']")
# 如果没抛出异常就说明找到了底部标志,跳出循环
break
except NoSuchElementException as e:
# 抛出异常说明没找到底部标志,继续向下滑动
pass # 将超时时间改回10秒
driver.implicitly_wait(10)

  5 获取到整个完整的页面后,就可以一次找出所有的girl封面图片了,这些封面图片是可以点击的,一点就打开了该girl的所有图片和对话,

  这里使用的是CSS选择器,比起xpath,撸主更喜欢CSS一些

# -----------------------找到所有girl的封面图片-----------------------
# 这些封面图片是可点击的,单击都会弹出该girl的所有图片和文字描述
girls = driver.find_elements_by_css_selector("div#container img")
num = len(girls)
print u"girl总数为:%d" % num

  6 最后一步了,遍历所有的封面图片,依次点击,然后抓取保存每一个girl的图片和对话,保存到本地

# -----------------------依次点击每张封面,提取每个girl的信息-----------------------
for girl in girls:
# 依次点击每一个girl的封面
girl.click() # 每点击一个girl后,都再点击一下弹出框,以更新driver,不然driver中的缓存还是上一个girl的
# 一定要注意这一步啊,撸主当时没有做这一步,折腾了好久
driver.find_element_by_xpath("html/body/div[3]/div[2]").click() # 提取标题,由于标题中的字符:和|不能作为文件名,将他们替换了
title = driver.find_element_by_css_selector("p.waterfall-detail-header-title").text
title = title.encode('utf-8')
title = title.replace(":", ":")
title = title.replace("|", "丨")
title = title.decode('utf-8') # 在file_path目录下,为该girl创建以标题命名的目录
path = mkdir_for_girl(file_path, title) # 提取该girl所有图片的URL
pics = driver.find_elements_by_css_selector("div.water-detail-content img")
pic_url = [x.get_attribute('src') for x in pics]
print u'该girl的图片总数为:%d' % len(pic_url) # 保存图片到本地以该girl标题命名的目录中
save_pictures(path, pic_url) # 提取girl的基本介绍,并写入info.txt文件
info = driver.find_element_by_xpath("html/body/div[3]/div[2]/div[2]/div[2]").text
write_text(path, info) # 提取所有对话,写入info.txt文件
talks = driver.find_elements_by_css_selector("div.water-detail-content p")
for t in talks:
write_text(path, t.text) # 关闭该girl的图片
driver.find_element_by_xpath("html/body/div[3]/div[2]/div[1]/div/img").click()
print u'该girl信息提取完成,继续处理下一个'
sleep(1) # -----------------------所有girl信息提取完成-----------------------
driver.close()
print u'恭喜,所有girl信息提取完成!'

  7 试着运行下,看下输出,是不是有点小激动

girl总数为:90
该girl的图片总数为:12
Sat May 14 09:24:54 2016 正在保存第0张图片
Sat May 14 09:24:54 2016 正在保存第1张图片
Sat May 14 09:24:54 2016 正在保存第2张图片

。省略很多

Sat May 14 09:33:36 2016 正在保存第9张图片
Sat May 14 09:33:37 2016 正在保存第10张图片
Sat May 14 09:33:37 2016 正在保存第11张图片
该girl信息提取完成,继续处理下一个
恭喜,所有girl信息提取完成!

  8 再看下本地目录,是不是很激动?

aaarticlea/png;base64,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" alt="" />

  说明:上面的代码是完整的,将所有的分段合并在一起就可以运行了。这里可以看到,selenium是很强大的,不仅仅是web自动化工具哦,

还是爬虫利器呢;但是,但是这里有个缺点就是,selenium会打开浏览器UI,这样操作起来就有点偏慢了,有没有更好的解决方案呢?---有的!

上一篇:【翻译习作】 Windows Workflow Foundation程序开发-第一章02


下一篇:L10 数据入站、转发、出站流程