精华内容
下载资源
问答
  • 高德地图爬虫

    千次阅读 2019-02-27 11:11:13
    高德地图爬虫 工具:Pycharm,win10,Python3.6.4 1.需求分析 这篇爬虫和上一篇百度地图爬虫要求一样,百度地图爬虫我发现有一个auth参数会一直变化,一旦变化则获取的数据是不准确的,所以我上高德地图看了一下,...

    高德地图爬虫

    工具:Pycharm,win10,Python3.6.4

    1.需求分析

    这篇爬虫和上一篇百度地图爬虫要求一样,百度地图爬虫我发现有一个auth参数会一直变化,一旦变化则获取的数据是不准确的,所以我上高德地图看了一下,高德地图没有这个反爬机制。但是高德地图大概爬取120个页面就会跳一次验证码,我这里是通过换IP解决这个问题的。

    2.数据准备

    同样我们需要全国地级市信息,用之前的数据即可

    3.爬虫思路

    首先打开高德地图搜索一个城市的养老院数量,看看需要的参数有哪些,已经我们要的信息在什么地方。

    按照这个步骤我们就能看到我们要的养老院数量就存放在这个位置,我们只需要获取该网页即可获取信息。网页参数如下

    红色方框即为我们需要的参数,有些参数可以省略,这个自行尝试。

    代码如下:

    import requests
    import json
    import xlwt
    from urllib.parse import urlencode
    import xlrd
    
    # 设置请求头,模拟浏览器访问
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36',
    }
    
    
    def get_page(keyword1, keyword2):
        try:
            data = {
                # 'wd': keyword1+keyword2,  # 修改关键字
                'query_type': 'TQUERY',
                'pagesize': '20',
                'pagenum': '1',
                'qii': 'true',
                'cluster_state': '5',
                'need_utd': 'true',
                'utd_sceneid': '1000',
                'div': 'PC1000',
                'addr_poi_merge': 'true',
                'is_classify': 'true',
                'zoom': '12',
                # 'city': '310000',
                # 'geoobj': '121.184146|31.118573|121.678531|31.212581',
                'keywords': keyword1 + keyword2,
            }
            # 把字典对象转化为url的请求参数
            url = 'https://www.amap.com/service/poiInfo?' + urlencode(data)
            # print(url)
            response = requests.get(url, headers=headers, timeout=60)
            response.encoding = 'utf-8'
            html = response.text
            # print(html)
            return html
        except:
            get_page(keyword1, keyword2)
    
    
    def parse_page(html):
        try:
            html = json.loads(html)
            # print(html)
            num = html['data']['total']
            # print(num)
            return num
        except:
            return '0'
    
    
    def write2excel(keywords1, nums, keyword2):
        book = xlwt.Workbook()
        sheet = book.add_sheet('sheet1')
        hang = 0
        for i in range(len(keywords1)):
            lie = 0
            sheet.write(hang, lie, keywords1[i])
            lie += 1
            sheet.write(hang, lie, str(nums[i]))
            hang += 1
        book.save(keyword2 + '.xls')
    
    
    def readExcel(filename):
        keywords = []
        # 打开文件
        wordbook = xlrd.open_workbook(filename)
        # 获取sheet4
        Sheet4 = wordbook.sheet_by_name('Sheet4')
        # 获取sheet4的第一列
        cols = Sheet4.col_values(0)
        for col in cols:
            keywords.append(col.strip())
        return keywords
    
    
    if __name__ == '__main__':
        keywords2 = ['养老院', '敬老院', '养老中心', '养老公寓']
        # keywords2 = ['养老院']
        for keyword2 in keywords2:
            nums = []
            keywords1 = readExcel('2.xls')
            # keywords1 = ['合肥市肥西县']
            for i in range(len(keywords1)):
                html = get_page(keywords1[i], keyword2)
                num = parse_page(html)
                nums.append(num)
                # print(type(nums[0]))
                print(keywords1[i], num)
    
            write2excel(keywords1, nums, keyword2)
    

     

    展开全文
  • 百度地图爬虫

    千次阅读 2019-02-26 16:18:15
    百度地图爬虫 工具:Pycharm,win10,Python3.6.4 1.需求分析 上面是我们正常打开百度地图看到的画面,我们只需要在输入框输入我们想查找的东西就能获取到相应信息,今天我们要获取每个地区的养老院的数量。...

    百度地图爬虫

    工具:Pycharm,win10,Python3.6.4

    1.需求分析

    上面是我们正常打开百度地图看到的画面,我们只需要在输入框输入我们想查找的东西就能获取到相应信息,今天我们要获取每个地区的养老院的数量。我们随便输入一个地区,如上海徐汇区。

    网页中打开开发者选项,就能看到返回的json数据中的total数量。这就是我们要获取的养老院的数量。注意这里是get请求,我们可以看到参数比较多,但是变化的主要是keyword。

    2.数据准备

    我们要的是全国各城市各个地级市的养老院的数量,所以得事先准备一份excel表,表格内容如下:

    3.爬虫思路

    首先读取excel文件获取地区列表,然后将地区与养老院拼接成一个关键字,加入参数中获取url。获得的html是json数据,解析json获取数据写入excel。

    代码如下

    import requests
    import json
    import xlwt
    from urllib.parse import urlencode
    import xlrd
    
    
    
    # 设置请求头,模拟浏览器访问
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36',
    }
    
    
    def get_page(keyword1,keyword2):
        data = {
            'newmap': '1',
            'reqflag': 'pcmap',
            'biz': '1',
            'from': 'webmap',
            'da_par': 'direct',
            'pcevaname': 'pc4.1',
            'qt': 's',
            'da_src': 'searchBox.button',
            'wd': keyword1+keyword2,  # 修改关键字
            'c': '289',
            'src': '0',
            'wd2': '',
            'pn': '0',
            'sug': '0',
            'l': '13',
            'b': '(13480122.61,3657143.23;13521498.61,3672951.23)',
            # 'from':'webmap',
            'biz_forward': '{"scaler":1,"styles":"pl"}',
            'sug_forward': '',
            'auth': 'MCR5b1yEGc7vgvcCXcx1618LaYIL66T0uxHHxVxVBTTtDpnSCE@@B1GgvPUDZYOYIZuVt1cv3uVtGccZcuVtPWv3GuxtVwi04960vyACFIMOSU7ucEWe1GD8zv7u@ZPuxtfvyudw8E62qvyyuoqFmqE2552b2b3=Z1vzXX3hJrZZWuV',
            'device_ratio': '1',
            'tn': 'B_NORMAL_MAP',
            'nn': '0',
            'u_loc': '13389933,3673373',
            'ie': 'utf-8',
        }
        # 把字典对象转化为url的请求参数
        url = 'https://map.baidu.com/?' + urlencode(data)
        response = requests.get(url, headers=headers,  timeout=60)
        response.encoding = 'utf-8'
        html = response.text
        # print(html)
        return html
    
    def parse_page(html):
        html = json.loads(html)
        num = html['result']['total']
        # print(num)
        return num
    
    def write2excel(keywords1,nums,keyword2):
        book = xlwt.Workbook()
        sheet = book.add_sheet('sheet1')
        hang = 0
        for i in range(len(keywords1)):
            lie = 0
            sheet.write(hang, lie, keywords1[i])
            lie += 1
            sheet.write(hang, lie, nums[i])
            hang += 1
        book.save(keyword2+'.xls')
    
    def readExcel(filename):
        keywords = []
        #打开文件
        wordbook = xlrd.open_workbook(filename)
        #获取sheet4
        Sheet4 = wordbook.sheet_by_name('Sheet4')
        #获取sheet4的第一列
        cols = Sheet4.col_values(0)
        for col in cols:
            keywords.append(col.strip())
        return keywords
    if __name__ == '__main__':
        # keywords2 = ['养老院', '敬老院', '养老中心', '养老公寓']
        keywords2 = ['养老院']
        for keyword2 in keywords2:
            nums = []
            keywords1 = readExcel('2.xls')
            for i in range(len(keywords1)):
                try:
                    html = get_page(keywords1[i],keyword2)
                    num = parse_page(html)
                    nums.append(num)
                    print(keywords1[i], num)
                except:
                    nums.append('0')
            write2excel(keywords1,nums,keyword2)
    
    

     

    展开全文
  • 1、由于高德地图有20*45条poi的限制,所以每次能爬取45页,需要尽可能的缩小爬取范围,才能尽可能多的获取poi数据; 2、所以我们最应该考虑的问题是缩小范围,利用程序对城市内每一个区县行政区分别进行爬虫,以获取...
  • 利用百度地图进行爬虫,首先要在百度地图API官网上注册并创建应用AK,如下图。

    利用百度地图进行爬虫,首先要在百度地图API官网上注册并创建应用AK,如下图。

    点击创建应用,设置应用名称。

    其他设置按照系统提示选择,点击提交即可。

    那么我们只需要应用的AK即可。如果免费的流量不够用,可以申请开发者得到更多的流量。下面进入正题。直接上代码。

    import requests

    from tqdm import tqdm

    def baidu_map_search():

        apk_key = "vSj23PqoC3nFXTOwW9xwRifMGiVjo3bV"#这部分写你自己的应用AK

        url = "http://api.map.baidu.com/place/v2/search"#官方规定,不用改

        types = [  '酒店', '美食'  ]#爬虫数据分类,根据自己需求设置

        with open('region.txt', 'r', encoding='utf-8') as f:

            regions = f.read()

            regions = regions.split('、')#regions里是我自己的搜索范围,这里我是按省市划分的

        region_index = 0

        type_index = 0

        page = 0

        f = open('pos_{}.txt'.format(type_index), 'w', encoding='utf-8')

        while True:

            params = {

                "query": types[type_index],

                "output": "json",

                "ak": apk_key,

                "region": regions[region_index],

                "page_size": 20,

                "page_num": page,

                "scope": 1,

            }#官方规定

            page += 1

            response = requests.get(url, params)

            result = response.json()

            status = result.get("status")

            message = result.get("message")

            if status != 0 and status != 2:

                raise Exception(message)

            data = result.get("results", {})

            if len(data) == 0:

                region_index += 1

                page = 0

            if region_index == len(regions):

                region_index = 0

                type_index += 1

                f.close()

                f = open('pos_{}.txt'.format(type_index), 'w', encoding='utf-8')

            if type_index == len(types):

                f.close()

                return

            print('{} {} page:{} num:{}'.format(

                regions[region_index], types[type_index], page, len(data)))

            for row in data:

                item = {

                    "name": row.get("name", "")

                }

                for k, v in item.items():

                    if '市' in v:

                        continue

                    f.write(v.split('(')[0]+'\n')

    if True:

        baidu_map_search()

        results = []

        for i in range(11):

            with open('pos_{}.txt'.format(i), 'r', encoding='utf-8') as f:

                data = f.read().splitlines()

                for v in tqdm(data):

                    if v[0] >= 'A' and v[0] <= 'z':

                        continue

                    if '州' in v or '县' in v or '市' in v or '区' in v :

                        continue

                    if v in results:

                        continue

                    results.append(v)

        with open('pos_ch.txt', 'w', encoding='utf-8') as f:

            for v in results:

                f.write(v+'\n') 

        print(len(results))

    除此之外,还有别的搜索规范,比如根据公里范围等等,具体的调用方式可以参考官网给的格式。

    不喜勿喷,欢迎交流。

    展开全文
  • baidu地图poi爬虫软件,输入城市/地区名称,和想要查询的业态,即可爬取。
  • python_使用地址或公司名_爬虫爬取高德地图_百度地图_腾讯地图经纬度 import os import pandas as pd import urllib.parse import requests from utils.geolocataion_converting import gcj02_to_wgs84 ''' 此文件...
  • 瓦片地图爬虫

    2020-07-15 17:42:35
    今天下载地图下载器,被win10删除,没法用了,所以被迫搞了个爬虫 爬BAT的地图,需要设置headers什么的,暂时就不搞了,后面遇到再说吧 # coding: utf8 import urllib.request import os import math def ...

    今天下载地图下载器,被win10删除,没法用了,所以被迫搞了个爬虫

    爬BAT的地图,需要设置headers什么的,暂时就不搞了,后面遇到再说吧

    # coding: utf8
    
    import urllib.request
    import os
    import math
    
    def download_img(img_url, path,imgname):
        request = urllib.request.Request(img_url)
        try:
            response = urllib.request.urlopen(request)
            filename = path+"\\"+imgname
            if (response.getcode() == 200):
                with open(filename, "wb") as f:
                    f.write(response.read()) # 将内容写入图片
                return filename
        except:
            return "failed"
    
    if __name__ == '__main__':
        for i in range(1,6):
            num=int(math.pow(2,i))
            for j in range(num):
                for k in range(num):
                    url="https://rovertang.com/labs/GoogleMapsTileDataDemoByLeaflet/gmaps/"+str(i)+"/"+str(j)+"/"+str(k)+".png"
                    #第一级目录
                    pathOne=r"D:\data"+"\\"+str(i)
                    isExists = os.path.exists(pathOne)
                    if not isExists:
                        os.mkdir(pathOne)
                    #第二级目录
                    path =r"D:\data"+"\\"+str(i)+"\\"+str(j)
                    isExists = os.path.exists(path)
    
                    if not isExists:
                        os.mkdir(path)
                    download_img(url, path, str(k) + ".png")
    

     

    展开全文
  • 共享单车地图爬虫 感谢您的支持 此处的python代码可以用于学习用途,但已经无法使用 别再问我什么token了,已经无法使用!已经无法使用!已经无法使用!已经无法使用! 请不要重复问这些问题,已经无法使用!已经...
  • 基于python3的百度街景地图爬虫

    千次阅读 热门讨论 2019-03-06 16:44:17
    需要的准备工作的准备好爬虫范围的经纬度。楼主采用的方法是从 百度地图拾取坐标系统 取坐标。 # _*_ coding: utf-8 _*_ __author__ = 'Minty' import urllib from urllib.request import urlopen import ...
  • 最近做了一个从网上下载不同源地图切片的程序,但是在下载谷歌地图时出现了图片下载错误,返回的不是图片信息是下面的html信息 We're sorry... ... but your computer or network may be sending automated ...
  • CSDN有很多关于高德地图poi爬取的文章,python代码也是无数,真正能实现我们需要的功能的代码和文章却寥寥无几。本文将从高德地图api获取开始讲起,希望能帮助大家真正理解高德地图到底能为我们的工作和学习做些什么...
  • 我的环境python2.7。运行后生产csv文件rent.cvs,内容为58同城品牌合租爬取的合租房源数据。使用火狐浏览器访问(谷歌浏览器加载csv时显示跨域问题)
  • 上篇关于爬虫的文章,我们讲解了如何运用Python的requests及BeautifuiSoup模块来完成静态网页的爬取,总结过程,网页爬虫本质就两步: 1、设置请求参数(url,headers,cookies,post或get验证等)访问目标站点的...
  • python爬取poi城市版_python爬虫_poi爬取软件_POI_地图爬虫_python.zip
  • 百度地图信息采集器-----含UI 界面展示: 数据展示: 技术点: requests — 用于对页面发起请求 threading — 线程库 解决了页面爬取的速度 os — 创建文件以及打开指定文件 xlwt — 将数据写入excel 表中 pyqt5...
  • python爬取poi城市版_python爬虫_poi爬取软件_POI_地图爬虫_python_源码.zip
  • 本文思路如下:调用百度地图API获取某区域内所有中学信息,依次获得每个中学的地理坐标,查询该坐标一定半径周围内所有网吧数据,将学校数据和网吧数据依次存入txt文件中。 一、百度地图API密钥申请 申请地址:...
  • 摘要:  受2019-nCoV的影响,一场没有硝烟的疫情防御阻击战已经打响。在全国人民众志成城的努力下,疫情情况在逐步趋于稳定,但我们仍然不... ①:中国疫情地图 地址: 中国疫情地图  ②:中国各省疫情数据展示 地址
  • 网站地图爬虫

    2017-01-14 22:16:30
    def crawl_sitemap(url): html = '' #download the sitemap file sitemap = download_page(url, 2) # extract the sitemap links links = re.findall('(.*?)',sitemap) #load each link
  • python: 百度地图api爬虫

    千次阅读 2019-10-10 16:42:58
    python网络爬虫的本质就是两步: 设置请求参数(url,headers,cookies,post或get验证等)访问目标站点的服务器; 解析服务器返回的文档,提取需要的信息。 而API的工作机制与爬虫的两步类似,但也有些许不同: ...
  • 百度地图爬虫(c#)

    2018-09-09 10:21:51
    Program.cs using System; using System.Collections.Generic; namespace TestApp { class Program { static void Main(string[] args) { var queryDatas = new List&lt;Que...
  • 主要介绍了python爬虫租房信息在地图上显示的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 下载如有问题,可私信博主。下载前建议先查看博客内容,其地址为:https://blog.csdn.net/QQ98281642/article/details/116652717
  • 百度地图采集器 编程语言:python 界面:tkinter 功能:可用于采集全国各省市各行业门店数据 个人写的工具型软件,调用百度api 使用:需要激活
  • 地图爬虫 坐标转换

    2021-11-15 20:24:12
    1、百度地图 关键字爬虫(python) 百度地图信息采集器(exe暂无法使用) https://github.com/lolkt/BaiduMap-webcrawler-information 此处爬虫的坐标为投影坐标 2、坐标转换(python) ...
  • 这是一个自制的八爪鱼采集爬虫。 使用提示: 采集规则视频演示+图文解说教程地址:http://www.ibazhuayu.com/article-baidumap.html 采集规则使用方法: 第一步:确保本机已安装八爪鱼采集软件,并已有帐号登录...
  • 爬虫jsp获取网页源码

    2019-04-28 17:45:04
    在jsp页面文本框中输入数据,根据输入的指定网址,在页面中获取到源码,或者直接根据网址显示网页
  • 爬虫 地图数据平台

    2019-06-07 21:31:02
    首先说 自己由于看到高德地图 ,然后就想做个地图数据平台这样一个壳子,希望能够在这个上面通过搜索到的数据供免费使用:如下图: 访问地址http://www.drespace.cn/gd/#/map-gdpoi[账号 : 账号 sky/123456] ...
  • 百度地图商家信息爬虫,通过python来进行商家信息抓取。 抓取商家信息:名称,市,区,地址,电话,坐标(X,Y),图片路径,标签,关键字

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,459
精华内容 4,583
关键字:

地图爬虫

爬虫 订阅