30秒抓取广州所有停车场的具体信息

目标地址 http://www.gzjt.gov.cn/gzjt/tcc/list_tt.shtml

上面url是广州交通的地址。朋友想要我帮忙去抓到所有的广州停车场所在的详细地址。

一开始去查这个网页的时候,感觉还是很迷惑的。因为是动态网页,所以我得先捕捉漏洞。然后,通过漏洞去抓到对应的数据有关的地址。

经过大概十几分钟,比较幸运,找到了对应的漏洞。(个人猜测,可能是因为是政府网站,所以,防护的效果虽然也是有,但是并不那么高深。

然后,我查了下,总共只有318页的数据,也就没有做多协程,就直接开了单线程,然后直接一路开过去就好了~
用时大概就30秒?,也还是能接受的~
(有个不太理解,就是不清楚,这个是不是限制了周围所有的)


代码运行效果

就是会在代码所在目录去找,看看有没有名为Data的文件夹。没有就创建一个。
之后,再根据特定捕捉到的漏洞,进行爬虫,把对应的信息写入这个文件夹中,然后存储为json格式的文件。并转成可以看中文的格式的编码。这样让我的Teamates,就算不懂代码,也可以直接点开这个文件来看数据。

代码如下

import requests
import os
import json


def getAllJson(Session, data, headers):
    url = 'http://219.136.133.163:8000/Pages/Commonpage/AsyGetData.asmx/GetParkList'
    res = Session.post(url, data=data, headers=headers)
    res.encoding = 'utf-8'
    with open('./Data/' + data['cp'] + '.json', 'w') as f:
        json.dump(res.json(), f, ensure_ascii=False)


if __name__ == '__main__':
    headers = {
        'X-Requested-With': 'XMLHttpRequest',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36'
    }
    pageSession = requests.Session()
    url = 'http://219.136.133.163:8000/Pages/Commonpage/AsyGetData.asmx/GetParkList'
    pageSession.get(url, headers=headers)
    data = {
        'cp': '1',
        'ps': '10',
        'kw': '',
        'lon': 'undefined',
        'lat': 'undefined',
        'type': 'undefined'
    }
    if not os.path.exists('./Data'):
        os.mkdir('./Data')
    for i in range(318):
        data['cp'] = str(i + 1)
        getAllJson(pageSession, data, headers)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,615评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,269评论 19 139
  • . 三年前绝望浪漫度过那虚设 世界末日 和你在摩天轮下漫步几小时 煞有介事 而今又跟几个重要人物认识 爱过几次 那...
    自由人梁小生阅读 294评论 0 0
  • 到了这个阶段人就是很容易多想 觉得未来很渺茫 不知道干什么 怕对不起自己又怕耽误对方 很多毕业就分手的人大概都是这...
    uaremybelief阅读 213评论 0 0
  • 有人说给孩子攒钱,不如教会她如何赚钱。让孩子有能力自己赚钱为父母付出,这也是一种成就感。 我们没有...
    4点半的恩赐阅读 210评论 0 0