51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1633|回复: 5
打印 上一主题 下一主题

scrapy框架+formdata+ajax爬取及翻页问题

[复制链接]
  • TA的每日心情
    擦汗
    前天 09:07
  • 签到天数: 527 天

    连续签到: 4 天

    [LV.9]测试副司令

    跳转到指定楼层
    1#
    发表于 2020-9-7 11:25:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    1测试积点
    使用scrapy框架爬取ajax网页,以中国地震台网——历史查询为例,我想爬取某个时间段内所有的数据,但是我的代码并不能实现,找了一些相关问题参考,最终代码如下,未能实现,请问大哥大佬们能支个招吗。。。(scrapy框架,已测试过代码其他配置等没有问题)
    1. #spider文件:

    2. # -*- coding: utf-8 -*-
    3. import scrapy
    4. from EarthquakeScrapy.items import EarthquakescrapyItem


    5. class TestScrapy(scrapy.Spider):
    6.    name = 'test'  # 爬虫的名字
    7.    allowed_domains = ['ceic.ac.cn/search']  
    8.    start_urls = 'http://www.ceic.ac.cn/ajax/search?page=&&start=&&end=&&jingdu1=&&jingdu2=&&weidu1=&&weidu2=&&height1=&&height2=&&zhenji1=&&zhenji2='
    9.    # 爬取页码循环次数,一共57页
    10.    all_page = 3

    11.    def start_requests(self):
    12.        # 遍历各页
    13.        for i in range(1, self.all_page + 1):  # 从前端获取的页面[1,57+1),循环1到57页
    14.            yield scrapy.FormRequest(self.start_urls,
    15.                                     formdata={'page': 'i', 'start': '2019-03-25','end': '2020-03-25',
    16.                                               'jingdu1': '', 'jingdu2': '','weidu1': '', 'weidu2': '',
    17.                                               'height1': '','height2': '', 'zhenji1': '', 'zhenji2': '','callback': ''},
    18.                                     callback=self.parse,
    19.                                     dont_filter=True)  # 请求对应的内容

    20.    def parse(self, response):
    21.        result = eval(response.body.decode('utf-8'))
    22.        records = result['shuju']
    23.        item = EarthquakescrapyItem()
    24.        print("**")#测试用
    25.        for record in records:
    26.            item['level'] = record['M']
    27.            item['time'] = record['O_TIME']
    28.            item['longitude'] = record['EPI_LON']
    29.            item['latitude'] = record['EPI_LAT']
    30.            item['depth'] = record['EPI_DEPTH']
    31.            item['address'] = record['LOCATION_C']
    32.            print(record['M'])#测试爬取数据情况
    33.            # yield item

    复制代码


    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    前天 08:59
  • 签到天数: 1801 天

    连续签到: 5 天

    [LV.Master]测试大本营

    2#
    发表于 2020-9-8 09:30:04 | 只看该作者
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-10-22 14:23
  • 签到天数: 1007 天

    连续签到: 1 天

    [LV.10]测试总司令

    3#
    发表于 2020-9-8 10:23:14 | 只看该作者
    1楼的链接可以参考看下~
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2024-9-30 15:02
  • 签到天数: 751 天

    连续签到: 2 天

    [LV.10]测试总司令

    4#
    发表于 2020-9-8 10:37:46 | 只看该作者
    https://ask.csdn.net/questions/1060422  参考下这个链接
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    前天 10:10
  • 签到天数: 1516 天

    连续签到: 5 天

    [LV.Master]测试大本营

    5#
    发表于 2020-9-8 10:38:31 | 只看该作者
    用beautifulsoup啊
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    前天 07:28
  • 签到天数: 2812 天

    连续签到: 5 天

    [LV.Master]测试大本营

    6#
    发表于 2020-9-8 14:21:54 | 只看该作者
    单步调试下
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-17 18:56 , Processed in 0.063856 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表