Python入门学习记录04--Scrapy爬取豆瓣Top250图书(可翻页)

Python入门学习记录04–Scrapy爬取豆瓣Top250图书(可翻页)

第一步 安装Scrapy

(1)国内镜像源加速

#终端输入
pip  install scrapy -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

(2)安装快结束会提示twisted无法安装
点击这里下载twisted
找到twisted 下载对应版本到本地
然后执行(这是我的版本,根据情况变动)

#下载安装目录下输入
pip install Twisted‑20.3.0‑cp38‑cp38‑win_amd64.whl

第二步 新建项目

#打开终端执行

scrapy startproject ZYP_Scarpy(文件名)

第三步 新建.py主文件

#在所创建的目录下运行cmd

scrapy genspider DouBanBook.py(文件名)

第四步 改动settings.py

将遵守君子协议改为“否”
将请求User-Agent改为浏览器地址

ROBOTSTXT_OBEY = False

DEFAULT_REQUEST_HEADERS = {
  'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
  'Accept-Language': 'en',
  'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36 Edg/85.0.564.44'
}

第四步 编写DouBanBook.py

import scrapy
a=[]
for i in range(10):
    a.append('https://book.douban.com/top250?start='+str(i*25))


class DoubanbookSpider(scrapy.Spider):
    name = 'DouBanBook'     #爬虫的名字,这是唯一的,不能和项目名称重复
    allowed_domains = ['douban.com']    #可以限制不要爬出界
    start_urls = a      #起始的request

    def parse(self, response):  #response 是爬取过后返回回来的数据
        #print(response.body())
        books = response.xpath('//div[contains(@class,"indent")]/table//tr[contains(@class,"item")]')
        for book in books:
            book_name = book.xpath('td[2]//a/@title').extract()
            book_info = book.xpath('td[2]//p[@class="pl"]/text()').extract()
            book_pingfen = book.xpath('td[2]//div[contains(@class,"clearfix")]/span[2]/text()').extract()
            book_quote = book.xpath('td[2]//p[@class="quote"]/span/text()').extract()
            #print(book_name)
            yield{
                "book_name":book_name,
                "book_info":book_info,
                "book_pingfen" :book_pingfen,
                "book_quote": book_quote
            }
        pass

第五步 爬取数据

#最后在项目下运行cmd

scrapy crawl DouBanBook(文件名)

运行部分截图
在这里插入图片描述

Over!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

血月无华AUV

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

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

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

打赏作者

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

抵扣说明:

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

余额充值