爬虫 scrapy ——获取电影名及图片(十二)

目录

一、创建爬虫项目及文件

二、获取电影名和图片


爬取电影天堂的电影名、图片,图片地址位于电影名的下一层链接中。

获取标题,点击链接 

再获取这一页的图片 

一、创建爬虫项目及文件

scrapy startproject scrapy_099

scrapy genspider movie http://category.dangdang.com/cp01.36.04.00.00.00.html

二、获取电影名和图片

在 items.py 中定义变量

class Scrapy099Item(scrapy.Item):
    # define the fields for your item here like:
    # name = scrapy.Field()
    name = scrapy.Field()
    src = scrapy.Field()

在 movie.py 中定义函数

这里在 parse函数中获取到了name,但是想要获取图片,需要点击链接,进入到下一个页面,所以这里我们又自己定义了一个 parse_second函数,用来获取图片,同时也需要将 name 传递给这个函数,然后再和图片链接统一传递给管道。

class MovieSpider(scrapy.Spider):
    name = 'movie'
    allowed_domains = ['www.dytt.to']
    start_urls = ['https://www.dytt.to/html/gndy/china/index.html']

    def parse(self, response):
        print('===============================')
        # 获取第一页的 name 和要点击的链接
        a_list = response.xpath('//div[@class="co_content8"]/ul//a[2]')

        for i in a_list:
            name = i.xpath('./text()').get()
            href = i.xpath('./@href').get()

            # 第二页地址
            url = 'http://www.dytt.to' + href

            # 对第二页的链接发起访问
            # 将name的值传递给 parse_second
            yield scrapy.Request(url=url,callback=self.parse_second, meta={'name':name})
            # print(name, url)

    def parse_second(self, response):
        # 如果拿不到数据,检查Xpath语法是否正确
        # span检测不到,语法中最好不要出现span
        src = response.xpath('//div[@id="Zoom"]//img/@src').get()
        # 接收到请求的meta参数的值
        name = response.meta['name']

        movie = Scrapy099Item(name=name, src=src)
        yield movie

在 settings.py 中打开管道

在 pipelines.py 中写文件

class Scrapy099Pipeline:

    # 在爬虫文件开始之前就执行的一个文件
    def open_spider(self, spider):
        print('++++++++++++++++++++++++++')
        self.fp = open('movie.json', 'w', encoding='utf-8')

    def process_item(self, item, spider):
        self.fp.write(str(item))
        return item

        # 在爬虫文件执行完之后再执行的方法
    def close_spider(self, spider):
        print('----------------------')
        self.fp.close()

参考

尚硅谷Python爬虫教程小白零基础速通(含python基础+爬虫案例)

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Billie使劲学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值