通过python爬虫爬取百度商户及公司信息

前言

这篇文章教大家怎么利用地图去获取更多的客户信息,用python爬虫跑商户的信息,然后生成excel表格,我们再去打电话询问是否需要该产品。最近做销售,需要打电话,但是这一天到晚哪有那么多客户需要打电话啊,得想办法挖掘客户,于是我调查了主要用我产品的地区,再加上某些行业,所以就想着用python去抓取公司信息,去打电话销售,然后就有了以下思路,我们还可以拓展思路,挖掘更多的行业。

实现方式

因为我所在的行业是售卖工地材料的,抗震支架材料供应商,是用在地下室通风管道,水管,线缆桥架上面的,所以我就想去挖掘相关的厂家,他们供这些货的时候就会接触到我们生产的产品,然后再考虑区域,因为有的地区是强制安装抗震支架的,我就拿北京举例吧,在房子建造完毕验收的时候是必须强制安装抗震支架的,我就可以考虑到北京的“风管生产供应厂家”“水管消防公司”“线缆桥架公司”“建筑机电有限公司”等等,作为关键词去搜索这些公司,很大概率就是我们的客户。

代码中#(河南)cities = ['郑州市', '开封市', '洛阳市', '平顶山市', '安阳市', '鹤壁市', '新乡市', '焦作市', '濮阳市', '许昌市', '漯河市', '三门峡市', '南阳市', '商丘市', '信阳市', '周口市', '驻马店市', '济源市']

以上代码是指定的地区可以是市,可以是区,可以精准定位到自己所想开发客户的区域。

ak = "百度商户对接的key" # Replace with your own Baidu Maps AK

key换成自己对接的百度商户的key

效果图

python代码

import requests
import json
import pandas as pd

def request_hospital_data():
    ak = "百度商户对接的key"  # Replace with your own Baidu Maps AK
    #(河南)cities = ['郑州市', '开封市', '洛阳市', '平顶山市', '安阳市', '鹤壁市', '新乡市', '焦作市', '濮阳市', '许昌市', '漯河市', '三门峡市', '南阳市', '商丘市', '信阳市', '周口市', '驻马店市', '济源市']
    # (北京) cities = ['东城区', '西城区', '朝阳区', '丰台区', '石景山区', '海淀区', '门头沟区', '房山区', '通州区', '顺义区', '昌平区', '大兴区', '怀柔区', '平谷区', '密云区', '延庆区']
    cities = ['东城区', '西城区', '朝阳区', '丰台区', '石景山区', '海淀区', '门头沟区', '房山区', '通州区', '顺义区', '昌平区', '大兴区', '怀柔区', '平谷区', '密云区', '延庆区']
    keyword = '关键词'
    items = []  # List to store all items

    for city in cities:
        url = f"http://api.map.baidu.com/place/v2/search?query={keyword}&page_size=20&scope=1&region={city}&output=json&ak={ak}"
        params = {'page_num': 0}  # Initialize page number
        
        try:
            print(f"Fetching data for {city}...")
            request = requests.get(url, params=params)
            data = json.loads(request.text)
            total = data['total']  # Total number of results
            total_page_num = (total + 19) // 20  # Calculate total number of pages
            
            for i in range(total_page_num):
                params['page_num'] = i
                request = requests.get(url, params=params)
                data = json.loads(request.text)
                
                for result in data['results']:
                    if 'telephone' in result:
                        name = result['name']
                        telephone = result.get('telephone', '')
                        province = result['province']
                        city = result['city']
                        area = result['area']
                        address = result['address']
                        new_item = (name, telephone, province, city, area, address)
                        items.append(new_item)
                        print(f"   Added: {name} ({telephone})")

        except Exception as e:
            print(f"Error fetching data for {city}: {str(e)}")

    df = pd.DataFrame(items, columns=['name', 'telephone', 'province', 'city', 'area', 'address'])
    df.to_csv('文件名称.csv', index=False, mode='a', encoding='utf-8-sig')

    print("Data saved to 文件名称.csv")

request_hospital_data()

下载地址

本地下载

点赞

发表回复

电子邮件地址不会被公开。必填项已用 * 标注