作家
登录

基于Python的Scrapy爬虫入门:代码详解

作者: 来源: 2017-11-30 09:07:01 阅读 我要评论

  •     │ 
  •  
  •     └─__pycache__ 
  •  
  •             settings.cpython-36.pyc 
  •  
  •             __init__.cpython-36.pyc 
    • scrapy.cfg:基本设置
    • items.py:抓取条目标构造定义
    • middlewares.py:中心件定义,词攀例中无需修改
    • pipelines.py:管道定义,用于抓取数据后的处理
    • settings.py:全局设置
    • spiders\photo.py:爬虫主体,定义若何抓取须要的数据

    items.py 中创建一个TuchongItem类并定义须要的属性,属性持续自 scrapy.Field 值可所以字符、数字或者列表或字典等等:

    别的,大年夜多半网站都有反爬虫的 Robots.txt 清除协定,设置 ROBOTSTXT_OBEY = True 可以忽视这些协定,是的,这似乎只是个正人协定。如不雅网站设置了浏览器User Agent或者IP地址检测来反爬虫,那就须要更高等的Scrapy功能,本文不做讲解。

    1. import scrapy 
    2.  
    3. class TuchongItem(scrapy.Item): 
    4.  
    5.     post_id = scrapy.Field() 
    6.  
    7.     site_id = scrapy.Field() 
    8.  
    9.     title = scrapy.Field() 
    10.  
    11.     type = scrapy.Field() 
    12.  
    13.     url = scrapy.Field() 
    14.  
    15.     image_count = scrapy.Field() 
    16.  
    17.     images = scrapy.Field() 
    18.  
    19.     tags = scrapy.Field() 
    20.  
    21.     excerpt = scrapy.Field() 
    22.  
    23.     ... 

    也就是并没有实际的图集内容,是以可以断定页面应用了Ajax请求,只有在浏览器载入页面时才会请求图集内容并参加div.widget-gallery中,经由过程开辟者对象查看XHR请求地址为:

    这些属性的值将在爬虫主体中付与。

    函数 parse 是处理请求内容的默认回调函数,参数 response 为请求内容,页面内容文本保存在 response.body 中,我们须要对默认代码稍加修改,让其知足多页面轮回发送请求,这须要重载 start_requests 函数,经由过程轮回语句构建多页的链接请求,修改后代码如下:

    spiders\photo.py 这个文件是经由过程敕令 scrapy genspider photo tuchong.com 主动创建的,琅绫擎的初始内容如下:

    1. import scrapy 
    2.  
    3. class PhotoSpider(scrapy.Spider): 
    4.  
    5.     name = 'photo' 
    6.  
    7.     allowed_domains = ['tuchong.com'
    8.  
    9.     start_urls = ['http://tuchong.com/'
    10.  
    11.     def parse(self, response): 
    12.  
    13.         pass 

    爬虫名 name,许可的域名 allowed_domains(如不雅链接不属于此域名将丢弃,允很多个) ,肇端地址 start_urls 将大年夜这里定义的地址抓取(允很多个)

    1. import scrapy, json 
    2.  
    3. from ..items import TuchongItem 
    4.  
    5. class PhotoSpider(scrapy.Spider): 
    6.  
    7.     name = 'photo' 
    8.  

        推荐阅读

        摆脱尴尬,我国IPv6加速跑需要“魔鬼步伐”

      CTO练习营 | 12月3-5日,深圳,是时刻成为优良的技巧治理者了 人工智能、大年夜数据、云计算、物联网,其实都是>>>详细阅读


      本文标题:基于Python的Scrapy爬虫入门:代码详解

      地址:http://www.17bianji.com/lsqh/39298.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)