当前位置:   article > 正文

Python.Scrapy爬取当当网畅销图书保存csv格式详细教程_利用python中的scrapy爬虫框架,设计一个当当网畅销图书爬虫, 将下载的图书畅销信

利用python中的scrapy爬虫框架,设计一个当当网畅销图书爬虫, 将下载的图书畅销信

初步了解scrapy框架爬虫的使用。
在这里插入图片描述

前言

需要安装一下第三方库
在win下
pip install scrapy
pip install bs4
在mac下把pip改成pip3即可
  • 1
  • 2
  • 3
  • 4
  • 5


一、创建scrapy项目

在cmd运行里输入(随便找个盘)

scrapy startproject dangdang

在这里插入图片描述

如上图创建成功,接下来在编译器中打开文件

在这里插入图片描述

这些文件都是自动生成的 来解释说明一下部分文件

在这里插入图片描述

二、代码实现——编辑爬虫

——1.

接下来创建爬虫项目book.py(注意在spiders文件夹下创建)
在这里插入图片描述

在book.py里填写爬虫代码

import scrapy
import bs4
from ..items import DangdangItem
# 需要引用DangdangItem,它在items里面。因为是items在book.py的上一级目录,..items这是一个固定用法。
class DangdangSpider(scrapy.Spider): #定义一个爬虫类DoubanSpider。
    name = 'dangdang'
    allowed_domains = ['http://bang.dangdang.com']
    start_urls = []
    for x in range(1, 4):
        url = 'http://bang.dangdang.com/books/bestsellers/01.00.00.00.00.00-year-2019-0-1-1' + str(x)
        start_urls.append(url)

    def parse(self, response): #parse是默认处理response的方法。
        soup = bs4.BeautifulSoup(response.text, 'html.parser')
        elements = soup.find('ul', class_="bang_list clearfix bang_list_mode").find_all('li')
        for element in elements:
            item = DangdangItem()
            item['name'] = element.find('div', class_="name").find('a')['title']
            item['author'] = element.find('div', class_="publisher_info").text
            item['price'] = element.find('div', class_="price").find('span', class_="price_n").text
            yield item#   #yield item是把获得的item传递给引擎。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

——2. 修改两个文件

接下来打开setting.py文件修改请求头爬虫协议
在这里插入图片描述

改成这样:(也就是取消遵守爬虫协议)

在这里插入图片描述

代码如下

Crawl responsibly by identifying yourself (and your website) on the user-agent
USER_AGENT = '~~Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'~~ (请求头改成自己的)
Obey robots.txt rules
ROBOTSTXT_OBEY = False
  • 1
  • 2
  • 3
  • 4

最后一步

打开item.py文件修改

在这里插入图片描述

添加以下参数:

	name = scrapy.Field()
    author = scrapy.Field()
    price = scrapy.Field()
  • 1
  • 2
  • 3

如图:
在这里插入图片描述

三、运行爬虫

创建main.py(通过这个运行整个爬虫程序)

在这里插入图片描述

我们需要知道在Scrapy中有一个可以控制终端命令的模块cmdline,能操控终端
但是此方法需要传入列表的参数。

填入

from scrapy import cmdline
cmdline.execute(['scrapy','crawl','dangdang'])
  • 1
  • 2

运行这个main.py就成功了!

在这里插入图片描述

四、保存为csv文件

要是想把爬取内容以表格形式保存

三行代码就可以解决,这也是scrapy的方便之处。

打开settings.py文件,在末尾添加代码:

FEED_URI='./%(name)s.csv'
FEED_FORMAT='csv'
FEED_EXPORT_ENCODING='ansi'
  • 1
  • 2
  • 3
'
运行

在这里插入图片描述看起来美观很多。

运行过程中可能会有各种报错,也是正常的,不要紧,一步步debug就会成功的。

谢谢支持~

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号