• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Python爬虫基础之初次使用scrapy爬虫实例

    项目需求

    在专门供爬虫初学者训练爬虫技术的网站(http://quotes.toscrape.com)上爬取名言警句。

    创建项目

    在开始爬取之前,必须创建一个新的Scrapy项目。进入您打算存储代码的目录中,运行下列命令:

    (base) λ scrapy startproject quotes
    New scrapy project 'quotes ', using template directory 'd: \anaconda3\lib\site-packages\scrapy\temp1ates\project ', created in:
        D:\XXX
    You can start your first spider with :
        cd quotes
        scrapy genspider example example. com
    

    首先切换到新建的爬虫项目目录下,也就是/quotes目录下。然后执行创建爬虫文件的命令:

    D:\XXX(master)
    (base) λ cd quotes\
    
      
    D:\XXX\quotes (master)
    (base) λ scrapy genspider quotes quotes.com
    cannot create a spider with the same name as your project
     
    D :\XXX\quotes (master)
    (base) λ scrapy genspider quote quotes.com
    created spider 'quote' using template 'basic' in module:quotes.spiders.quote
    

    该命令将会创建包含下列内容的quotes目录:

    robots.txt

    robots协议也叫robots.txt(统一小写)是一种存放于网站根目录下的ASCII编码的文本文件,它通常告诉网络搜索引擎的网络蜘蛛,此网站中的哪些内容是不应被搜索引擎的爬虫获取的,哪些是可以被爬虫获取的。

    robots协议并不是一个规范,而只是约定俗成的。

    #filename : settings.py
    #obey robots.txt rules
    ROBOTSTXT__OBEY = False

    分析页面

    编写爬虫程序之前,首先需要对待爬取的页面进行分析,主流的浏览器中都带有分析页面的工具或插件,这里我们选用Chrome浏览器的开发者工具(Tools→Developer tools)分析页面。

    数据信息

    在Chrome浏览器中打开页面http://lquotes.toscrape.com,然后选择"Elements",查看其HTML代码。

    可以看到每一个标签都包裹在

    编写spider

    分析完页面后,接下来编写爬虫。在Scrapy中编写一个爬虫, 在scrapy.Spider中编写代码Spider是用户编写用于从单个网站(或者-些网站)爬取数据的类。

    其包含了-个用于下载的初始URL,如何跟进网页中的链接以及如何分析页面中的内容,提取生成item的方法。

    为了创建一个Spider, 您必须继承scrapy.Spider类,且定义以下三个属性:

    import scrapy
     
    class QuoteSpi der(scrapy . Spider):
        name ='quote'
        allowed_ domains = [' quotes. com ']
        start_ urls = ['http://quotes . toscrape . com/']
        
        def parse(self, response) :
            pass
    

    下面对quote的实现做简单说明。

    1.提取页面中的数据(re、XPath、CSS选择器)
    2.提取页面中的链接,并产生对链接页面的下载请求。
    页面解析函数通常被实现成一个生成器函数,每一项从页面中提取的数据以及每一个对链接页面的下载请求都由yield语句提交给Scrapy引擎。

    解析数据

    import scrapy
     
    def parse(se1f,response) :
        quotes = response.css('.quote ')
        for quote in quotes:
            text = quote.css( '.text: :text ' ).extract_first()
            auth = quote.css( '.author : :text ' ).extract_first()
            tages = quote.css('.tags a: :text' ).extract()
            yield dict(text=text,auth=auth,tages=tages)
    

    重点:

    运行爬虫

    在/quotes目录下运行scrapycrawlquotes即可运行爬虫项目。
    运行爬虫之后发生了什么?

    Scrapy为Spider的start_urls属性中的每个URL创建了scrapy.Request对象,并将parse方法作为回调函数(callback)赋值给了Request。

    Request对象经过调度,执行生成scrapy.http.Response对象并送回给spider parse()方法进行处理。

    完成代码后,运行爬虫爬取数据,在shell中执行scrapy crawl SPIDER_NAME>命令运行爬虫'quote',并将爬取的数据存储到csv文件中:

    (base) λ scrapy craw1 quote -o quotes.csv
    2021-06-19 20:48:44 [scrapy.utils.log] INF0: Scrapy 1.8.0 started (bot: quotes)

    等待爬虫运行结束后,就会在当前目录下生成一个quotes.csv的文件,里面的数据已csv格式存放。

    -o支持保存为多种格式。保存方式也非常简单,只要给上文件的后缀名就可以了。(csv、json、pickle等)

    到此这篇关于Python爬虫基础之初次使用scrapy爬虫实例的文章就介绍到这了,更多相关Python scrapy框架内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • Python爬虫框架-scrapy的使用
    • python scrapy项目下spiders内多个爬虫同时运行的实现
    • python爬虫scrapy基本使用超详细教程
    • 在python3.9下如何安装scrapy的方法
    • python实现scrapy爬虫每天定时抓取数据的示例代码
    • python Scrapy爬虫框架的使用
    上一篇:Python上下文管理器Content Manager
    下一篇:Python爬虫基础之简单说一下scrapy的框架结构
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Python爬虫基础之初次使用scrapy爬虫实例 Python,爬虫,基础,之,初次,