scrapy爬取网站返回json数据处理

本文介绍了一个使用Scrapy框架抓取内涵社区JSON数据的爬虫实例。该爬虫能够解析并打印出每一条段子的具体内容,并预留了下一页数据加载的实现方式。此外,还提到了为了提高爬虫的隐蔽性和成功率,可以在middlewares文件中设置随机请求头。
摘要由CSDN通过智能技术生成

# -*- coding: utf-8 -*-
import scrapy
import json
 
class NeihanSpider(scrapy.Spider):
    name = 'neihan'
    allowed_domains = ['neihanshequ.com']
    start_urls = ['http://neihanshequ.com/bar/1/?is_json=1&app_name=neihanshequ_web&max_time=1521163598']
 
    def parse(self, response):
 
        # 返回的是json数据
        # 转换为python中的字典
        rs =  json.loads(response.text)
        if rs.get('message') == 'success':
            # 取出数据
            data = rs.get('data')
            # 取出下一页的时间戳
            max_time = data.get('max_time')
            # 段子数据
            detail_data = data.get('data')
            # for循环遍历数据,取出每一条段子
            for dz in detail_data:
                text = dz.get('group').get('text')
                print(text)
 
            # 找到下一页,根据时间戳拼接完整的加载更多url
            # if max_time:
            #     next_url = 'http://neihanshequ.com/bar/1/?is_json=1&app_name=neihanshequ_web&max_time='+str(max_time)
            #     # 发起请求
            #     yield scrapy.Request(
            #         url=next_url
            #     )
 


需要在middlewares文件中设置的一下随机请求头 
 

Scrapy一个用于爬取网站数据的开源框架,它提供了一套完整的工具来提取和存储数据。以下是使用 Scrapy 爬取网站数据的基本步骤: 1. **安装 Scrapy**: 首先,你需要安装 Scrapy。你可以使用 pip 来安装: ```bash pip install scrapy ``` 2. **创建 Scrapy 项目**: 安装完成后,你可以创建一个新的 Scrapy 项目。在命令行中导航到你想要创建项目的目录,然后运行: ```bash scrapy startproject myproject ``` 这将创建一个名为 `myproject` 的新目录,其中包含 Scrapy 项目所需的文件。 3. **定义 Item**: Item 是 Scrapy 中用于定义你要抓取的数据结构的类。在 `items.py` 文件中定义你的 Item: ```python import scrapy class MyprojectItem(scrapy.Item): title = scrapy.Field() link = scrapy.Field() description = scrapy.Field() ``` 4. **编写 Spider**: Spider 是 Scrapy 中用于定义爬虫逻辑的类。在 `spiders` 目录下创建一个新的 Spider 文件,例如 `example_spider.py`: ```python import scrapy from myproject.items import MyprojectItem class ExampleSpider(scrapy.Spider): name = "example" start_urls = [ 'http://example.com', ] def parse(self, response): for item in response.css('div.article'): title = item.css('h2::text').get() link = item.css('a::attr(href)').get() description = item.css('p::text').get() yield MyprojectItem(title=title, link=link, description=description) ``` 5. **运行 Spider**: 在命令行中导航到项目目录,然后运行: ```bash scrapy crawl example -o items.json ``` 这将启动爬虫并将抓取到的数据保存到 `items.json` 文件中。 6. **处理数据**: 你可以编写管道(Pipeline)来处理抓取到的数据,例如存储到数据库中。在 `pipelines.py` 文件中定义你的管道: ```python import json class MyprojectPipeline: def open_spider(self, spider): self.file = open('items.json', 'w', encoding='utf-8') def close_spider(self, spider): self.file.close() def process_item(self, item, spider): line = json.dumps(dict(item), ensure_ascii=False) + "\n" self.file.write(line) return item ``` 然后在 `settings.py` 文件中启用管道: ```python ITEM_PIPELINES = { 'myproject.pipelines.MyprojectPipeline': 300, } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值