分别用selenium和scrapy爬取网站(二)

本文介绍如何使用Scrapy爬取淘宝美食信息,包括多级网页爬取、数据存储到MySQL以及图片下载。在实践中遇到部分商品信息未完全抓取的问题,设置延迟下载后,成功抓取并存储了80个商品的数据和图片。
摘要由CSDN通过智能技术生成

使用scrapy爬取美食信息

本节将利用scrapy爬取淘宝美食信息,其中涉及的内容有:多级网页的爬取技巧、数据存储以及图片下载。本次的编程环境为:Pycharm+Python3.4(windows)+scrapy1.4.0
1. 创建一个工程:打开cmd,用cd命令进入到指定文件夹,输入:scrapy startproject topgoods 回车,出现以下页面:
这里写图片描述
2. 用pycharm打开,工程结构如图所示:
这里写图片描述
3. 在spiders文件夹下新建一个Python文件,命名为taobao.py。具体的创建及实现过程参见博文:http://www.aobosir.com/blog/2016/12/26/python3-large-web-crawler-taobao-com-import-to-MySQL-database/

# -*- coding: utf-8 -*-
class TaobaoSpider(scrapy.Spider):
    name='taobao'
    allowed_domains=['taobao.com']
    start_urls=['http://www.taobao.com']
    def parse(self, response):
        key='小吃'
        for i in range(0,2):  #只爬取前两页的信息
            url='https://s.taobao.com/search?q='+str(key)+'&s='+str(44*i)
            #print("url:",url)
            yield Request(url=url,callback=self.get_page)

4.按照上述博文,能实现淘宝信息的爬取,但不能完全下载两页中的48*2=96个商品信息。我将settings中设置了延迟下载,延迟时间为3s,数据库和图片均只获得了80个商品的信息。后续找到完善办法,将会重更此文。数据库中获取的信息如图所示:
这里写图片描述

  • 在完成上述爬虫任务的基础上,还可以爬取相应的图片。首先在Items中新加一个字段, 用于存储图片下载的URL:
    这里写图片描述
  • 此外对settings文件稍作修改:

  • 这里写图片描述
  • 最最重要的 当然还是在taobao.py中添加如下信息(放到next()方法中):
file_url = response.xpath('//*[@id="J_ImgBooth"]/@src').extract()[0]
file_url = 'http:' + file_url
print(file_url)
item['file_urls'] = [''+file_url]  ##特别注意,不这么处理会产生错误。
  • 最后,在pycharm的terminal中,运行topgoods:
    这里写图片描述
  • 图片下载结果如图所示:
    -这里写图片描述
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值