前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用Scrapy爬取当当网书籍信息

用Scrapy爬取当当网书籍信息

作者头像
佛系编程人
发布2019-08-14 14:15:05
1.1K0
发布2019-08-14 14:15:05
举报

用Scrapy爬取当当网书籍信息

日期:2019-04-23 23:27:34 星期二

项目流程

  • 确定项目目标
  • 创建Scrapy项目
  • 定义Item(数据)
  • 创建和编写Spider文件
  • 修改Settings.py文件
  • 运行Scrapy爬虫

确定项目目标

今天通过创建一个爬取当当网2018年图书销售榜单的项目来认识一下Scrapy的工作流程

当当链接: "http://bang.dangdang.com/books/bestsellers/01.54.00.00.00.00-year-2018-0-1-1 "

目标:

  • 爬取前3页的数据
  • 爬取字段:图书名、作者和价格

创建Scrapy项目

首先要安装scrapy这个库,但这个安装很麻烦,很容易掉坑

我这里是用anaconda下载的,这种方式很方便

下载命令:pip install scrapy

用cmd命令打开命令行窗口,输入以下命令:

scrapy startproject dangdang

dangdang是项目的名称

到这里就创建好了我们的dangdang项目

定义Item数据

打开items.py文件,并添加以下内容:

import scrapy
class DangdangItem(scrapy.Item): #继承scrapy.Item类 
    name = scrapy.Field() #定义数据属性
    author = scrapy.Field()
    price = scrapy.Field()

创建和编写Spider文件

在spiders文件夹里面新建一个spider.py(自己命名的),编写爬去代码。 代码如下:

import scrapy
from bs4 import BeautifulSoup
from ..items import DangdangItem
#..代表上层目录,因为现在spider文件夹,item在上层目录,然后导入DangdangItem模块
class DangdangSpider(scrapy.Spider):
#括号里需要有scrapy.Spider这个基类,这个基类里面包含很多属性和方法供我们使用
    name = "dangdang" #项目名字,待会运行爬虫时要用到
    allow_domains = ["http://bang.dangdang.com"] 
    #允许爬取的域名,可以准确定位,防止跳到其它广告
    start_urls = [] 
    for num in range(1,4): #获取前三页的链接
        url = f"http://bang.dangdang.com/books/bestsellers/01.54.00.00.00.00-year-2018-0-1-{num}"
        start_urls.append(url)

    def parse(self,reponse): #解析并提取数据的函数
        soup = BeautifulSoup(reponse.text,"html.parser")
        tag_ul = soup.find("ul",class_="bang_list clearfix bang_list_mode")
        tags_li = tag_ul.find_all("li")
        for tag in tags_li:
            item = DangdangItem() #创建一个item对象,用来处理和传输数据
            item["name"] =tag.find("div",class_="name").find("a").text
            item["author"]=tag.find("div",class_="publisher_info").find("a").text 
            item["price"] = tag.find("span",class_="price_n").text
            print(item["name"])
            print("="*40)
            yield item

**修改Settings.py文件 **

爬虫已经写好后还需要去settings.py文件里面修改一些内容

USER_AGENT = 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36' #伪装爬虫

ROBOTSTXT_OBEY = False 
#有些网站的robots.txt规定是不允许爬取的,设置为True,scrapy就可以无视这个规定

运行Scrapy文件

用cmd打开命令窗口,输入以下命令即可开始运行程序

scrapy crawl dangdang

本文还没有对数据进行存储,如果需要如何存储数据,可以加我私聊

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-04-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 佛系编程人 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 用Scrapy爬取当当网书籍信息
    • 项目流程
      • 确定项目目标
        • 创建Scrapy项目
          • 定义Item数据
            • 创建和编写Spider文件
              • **修改Settings.py文件 **
                • 运行Scrapy文件
                相关产品与服务
                命令行工具
                腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档