首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python爬虫实战(5)-爬取淘宝网服装图片(Selenium+Firefox

前言

前两节我们讲了Selenium的安装配置和基本用法,不熟悉的朋友可以去看一看:

今天我们巩固一下前面学过的知识,通过Selenium+Firefox实现模拟浏览器并自动翻页,爬取图片并写入本地文件中。

以搜索“女装”为例,自动爬取“女装”展示页面的前五页图片信息,先看一下爬取到的图片:

运行后浏览器的显示效果(我只截取了一部分):

本文学习要点:

掌握selenium+Firefox的常见用法

Selenium下拉滚动+翻页

会在浏览器上查看审查元素(浏览器右键-->检查)

例如我们定位搜索框:

xpath语法

图片写入本地文件

实战

直接上源码:

# coding=utf-8

fromseleniumimportwebdriver

importrequests

importos

fromlxmlimportetree

importtime

#页面交互

defgetPhoto():

# 路径,可以更改成你的路径

path ='C://Users/Administrator/Desktop/美女图片/'

try:

driver = webdriver.Firefox()

driver.get('https://www.taobao.com/')

# 隐示等待,为了等待充分加载好网址

driver.implicitly_wait(5)

# 定位到搜索框

write = driver.find_element_by_class_name("search-combobox-input")

# 输入"女装"

write.send_keys("女装")

# 点击搜索

driver.find_element_by_class_name('search-button').click()

time.sleep(2)

# 爬取淘宝"女装"前五页的图片数据

foriinrange(1,6):

time.sleep(1)

# 下拉滚动条,分3次拉到底部

forjinrange(1,4):

driver.execute_script("window.scrollBy(0,1600)")

time.sleep(2)

# print(driver.page_source)

# 解析

selector = etree.HTML(driver.page_source)

# 获取到女装图片的URL集合

photo_urls = selector.xpath('//div/div/div/div/a/img/@src')

# 把图片写入本地文件

foriteminphoto_urls:

ifnotos.path.exists(path):

os.makedirs(path)

print("path创建成功")

data = requests.get("http:"+ item)

withopen(path + item.split('TB')[1][:18] +".jpg",'wb')asf:

f.write(data.content)

f.close()

time.sleep(1)

# 点击下一页,我用了name,ID等定位无效,所以用的find_element_by_css_selector

next = driver.find_element_by_css_selector(

"#mainsrp-pager > div > div > div > ul > li.item.next > a > span:nth-child(1)")

next.click()

exceptExceptionase:

print(e)

if__name__ =='__main__':

getPhoto()

希望对大家有所帮助!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180528G13RME00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券