使用scrapy 爬糗百

作者: 玩儿出彩 | 来源:发表于2016-12-26 10:47 被阅读64次

自学Python,还在学习中,如有问题请留言,大家共勉

开发工具:PyCharm
使用框架:srcapy

步骤

  • 1 安装Scrapy:pip3 install srcapy

  • 2 创建工程:scrapy startproject mySpider

  • 3 目录结构如下:
    mySpider/
    scrapy.cfg
    mySpider/
    init.py
    items.py
    pipelines.py
    settings.py
    spiders/
    init.py

    • mySpider/:工程目录
    • scrapy.cfg: 项目的配置文件
    • mySpider/items.py: 项目中的item文件.
    • mySpider/pipelines.py: 项目中的pipelines文件.
    • mySpider/settings.py: 项目的设置文件.
    • mySpider/spiders/: 放置spider代码的目录.
  • 4 添加代码

    • 在items.py 中添加类QiuBaiItem,代码如下:
      class QiuBaiItem(Item):
      userName = scrapy.Field()
      content = scrapy.Field()

    • 在spiders目录下创建python 文件 qiubai_spider.py

    • 在该文件中创建类 QiubaiSpider,代码如下:
      class QiubaiSpider(Spider):
      name = 'qiubai'
      start_urls = [
      'http://www.qiushibaike.com'
      ]
      def parse(self, response):
      for item in response.xpath('//div[@id="content-left"]/div[@class="article block untagged mb15"]'):
      qiubai = QiuBaiItem()
      userName = item.xpath('./div[@class="author clearfix"]/a[2]/h2/text()').extract()
      if userName:
      userName = userName[0]
      qiubai['userName'] = userName

                              content = item.xpath('./a[@class="contentHerf"]/div[@class="content"]/span/text()').extract()            
                              if content:                
                                       con = ''                
                                       for str in content:                    
                                                con += str                
                                                qiubai['content'] = con        
      
                              yield qiubai
      
  • 5 在 items.py 同级目录下创建 manage.py,代码如下:
    from scrapy.cmdline import

      executeexecute()
    
  • 6 点击Run -> Edit Configuraction,
    Name:糗百(这个随意);
    Scrip 选在 manage.py;
    Script parameters 填写 crawl qiubai

  • 7 进入settings.py,添加USER_AGENT
    在线查看USER_AGENT
    USER_AGENT = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0.2 Safari/602.3.12'

完成以上7 步就可以直接运行了。
如果你想输出到文件,则可以在 Script parameters 填写

     crawl qiubai -o qiubai_items.json

相关文章

网友评论

    本文标题:使用scrapy 爬糗百

    本文链接:https://www.haomeiwen.com/subject/nvcjvttx.html