2023年6月29日发(作者:)
Scrapy使⽤教程简介搜到这篇⽂章的不⽤多说都是准备玩爬⾍的,scrapy的基本信息不多做解释分析,直接上教程。Scrapy 安装编译环境:Anaconda 3pip install scrapy命令#
创建Scrapy爬⾍项scrapy startproject 项⽬名#
创建爬⾍⽂件cd 项⽬名scrapy genspider 爬⾍名 ⽬标域名#
启动scrapy项⽬scrapy crawl 爬⾍名分析接下来对⼏个重点的位置进⾏分析代码结构spiders:放置爬⾍代码的⽬录⽂件,⽤于编写爬⾍。:⽤于保存所抓取的数据的容器,其存储⽅式类似于 Python 的字典。:项⽬的中间件,提供⼀种简便的机制,通过允许插⼊⾃定义代码来拓展 Scrapy 的功能。:项⽬的核⼼处理器。:项⽬的设置⽂件。:项⽬的配置⽂件。创建 scrapy 项⽬以后,在 settings ⽂件中有这样的⼀条默认开启的语句:ROBOTSTXT_OBEY = 是遵循 Robot 协议的⼀个⽂件,在 Scrapy 启动后,⾸先会访问⽹站的 ⽂件,然后决定该⽹站的爬取范围。通常我们需要将此配置项设置为 False:ROBOTSTXT_OBEY = 对所要抓取的⽹页数据进⾏分析,定义所爬取记录的数据结构。在相应的 中建⽴相应的字段,例如:import scrapyfrom import ItemLoaderfrom sors import TakeFirstclass StockstarItemLoader (ItemLoader):#
⾃定义itemloader,⽤于存储爬⾍所抓取的字段内容default_output_processor = TakeFirst()class StockstarItem () : #
建⽴相应的字段# define the fields for your item here like:# name = ()code = () #
股票代码abbr = () #
股票简称last_trade = () #
最新价chg_ratio = () #
涨跌幅chg_amt = () #
涨跌额chg_ratio_5min = () # 5分钟涨幅volumn = () #
成交量turn_over = () #
成交额编写爬⾍逻辑⽣成的 spider 代码中,件会⽣成 start_url,即爬⾍的起始地址,并且创建名为 parse 的⾃定义函数,之后的爬⾍逻辑将在 parse 函数中书写,例:import scrapyfrom items import StockstarItem, StockstarItemLoaderclass StockSpider(): name = 'stock' #
定义爬⾍名称 allowed_domains = [''] #
定义爬⾍域 start_urls = ['/stock/ranklist_a_3_1_'] #定义开始爬⾍链接 def parse (self, response) : #撰写爬⾍逻辑 page = int (("_")[-1].split(".")[0])#抓取页码 item_nodes = ('#datalist tr') for item_node in item_nodes: #根据item⽂件中所定义的字段内容,进⾏字段内容的抓取 item_loader = StockstarItemLoader(item=StockstarItem(), selector = item_node) item__css("code", "td:nth-child(1) a::text") item__css("abbr", "td:nth-child(2) a::text") item__css("last_trade", “td:nth-child(3) span::text") item__css("chg_ratio", "td:nth-child(4) span::text") item__css("chg_amt", "td:nth-child(5) span::text") item__css("chg_ratio_5min","td:nth-child(6) span::text") item__css("volumn", "td:nth-child(7)::text") item__css ("turn_over", "td:nth-child(8) :: text") stock_item = item__item() yield stock_item if item_nodes: next_page = page + 1 next_url = e ("{0}.html".format (page) , "{0}.html".format(next_page)) yield t(url=next_url, callback=)代码调试为了调试⽅便,在根⽬录下新建⼀个 ,调试代码如下:from e import executeexecute(["scrapy","crawl","lewis"])其等价于在根⽬录下执⾏命令“scrapy crawl lewis”。基础的内容就在这,其余的都是拓展内容了。
发布者:admin,转转请注明出处:http://www.yc00.com/news/1687983040a63587.html
评论列表(0条)