我们做汽车相关研究的时候,通常会涉及到汽车经销商的数据,其中包括汽车4S店的地理信息(经纬度,位于哪个省份,哪个城市,哪个区域)以及4S店的联系方式,类型等。那我们是如何得到汽车经销商的数据呢?
去官网上一个个粘贴复制???
都什么年代了,还干这种吃力不讨好的事情。今天教你用Python简简单单几行代码就能抓取长安汽车的经销商数据。
1 首先抓取长安汽车经销商所在的城市数据。
import requests
import json
import time
import csv
url='https://www.changan.com.cn/cache/region_json.js'
r=requests.get(url).text
a=r.split('=')[1][:-1]
b=json.loads(a)
b
以上代码得到城市经销商列表数据如下:
2 利用得到的城市数据,构建新的URL,抓取每个城市的经销商数据
code_id=[]
for code in b:
for children_code in code['children']:
children=children_code['region_code']
code_id.append(children)
for id in code_id:
#print(id)
url='https://www.changan.com.cn/cache/dealer/dealer_'+str(id)+'_json.js'
print(url)
以上代码得到的每个城市的URL如下:
3 抓取每个城市的经销商数据
headers={'Referer': 'https://www.changan.com.cn/dealer.shtml?navActive=0','User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36'}
aa=[]
for id in code_id:
#print(id)
url='https://www.changan.com.cn/cache/dealer/dealer_'+str(id)+'_json.js'
#print(url)
html=requests.get(url,headers=headers).text
time.sleep(1)
#print(html)
data1=html.split('=')[1][:-1]
data=json.loads(data1)
aa.extend(data)
以上代码得到的每个城市的经销商数据如下:
4 保存数据
import pandas as pd
df = pd.DataFrame(aa)
df.head()
df.to_csv('aa.csv', header=True, index=False, encoding='utf-8-sig')
以上代码得到的每个城市的经销商数据都保存在命名为aa的CSV文件中:
几行代码,简简单单就能抓下数据,前后不到半小时,是不是比人工复制粘贴轻省很多。有什么问题欢迎与我私信交流。本人专注于数据挖掘,数据分析,欢迎随时交流。用技术提高工作效率,提升工作质量。