python 丰田经销商
import requests
import json
from dbutil.pgsql import PgsqlPipeline
from datetime import date headers={
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36',
'Accept-Encoding': 'gzip, deflate, br',
'Accept-Language': 'zh-CN,zh;q=0.9', } def get_Provinces():
url = 'https://www.ftms.com.cn/website/Maintenance/getProvince'
response =requests.get(url,headers=headers,verify=False)
provinces_list= json.loads(response.text)['data']
return provinces_list def get_Citys(provinces_cid): city_url =f'https://www.ftms.com.cn/website/Maintenance/getCity?cid={provinces_cid}' res=requests.get(city_url,verify=False,headers=headers)
cities=json.loads(res.text)['data']
return cities
# print(cities) # city_list=json.loads(reponse.text)['data']
# for city_dict in city_list:
# city_cid=city_dict.get('cid')
# city_name=city_dict.get('name')
# print(city_cid,city_name)
# def get_Dealers(city_id,provinces_cid): dealers_url ='https://www.ftms.com.cn/website/Dealer/getDealer'
data={'cityName': "" ,'cityid': city_id,'dealerName': "",'provinceName': "",'provinceid': provinces_cid}
# data={"provinceid":"420000","cityid":"420700","dealerName":"","cityName":"","provinceName":""}
print(data) dealer_res=requests.post(dealers_url,headers=headers,verify=False,data=json.dumps(data))
dealers=json.loads(dealer_res.text)['data']['list']
return dealers def get_item(dealer, province_name, city_name):
item={
"dealer_name":dealer["fullname"],
"brand_id": None,
"address": dealer["address"],
"brand": "丰田",
"province": province_name,
"city": city_name,
"sale_call": dealer["phone_seal"],
"customer_service_call": dealer["phone_service"],
"update_time": date.today(),
"longitude": dealer['lng'],
"latitude": dealer['lat'],
"dealer_type": None,
"manufacturer_id": None,
"manufacturer": "丰田汽车",
"state": None,
"opening_date": None,
"close_date": None,
"dealer_id_web": None,
"controlling_shareholder": None,
"other_shareholders": None,
"status": None,
"remarks": None, } return item def get_items():
items=[]
provinces_list =get_Provinces()
for provinces_dict in provinces_list:
provinces_cid =provinces_dict.get('cid')
provinces_name=provinces_dict.get('name')
# print(provinces_cid,provinces_name) cities =get_Citys(provinces_cid)
for city in cities:
city_id =city.get('cid')
city_name=city.get('name')
# print(city_id,city_name)
dealers=get_Dealers(city_id,provinces_cid)
for dealer in dealers: print(dealer)
item=get_item(dealer,provinces_name,city_name)
items.append(item) return items def main():
print('爬虫开始.....')
items=get_items() print('等待数据存储')
pg =PgsqlPipeline()
for item in items:
pg.process_item(item)
pg.close()
print('数据存储完成!!!') if __name__ == '__main__':
main()
python 丰田经销商的更多相关文章
- python 日产经销商
''' ajaxCallSiteInfo: {1C8B2BC6-35E2-460E-A63D-3576F3039D79} ''' import requests import json from db ...
- 长安铃木经销商爬取(解析xml、post提交、python中使用js代码)
1.通过火狐浏览器,查找大长安铃木官网中关于经销商的信息主要在两个网页中 http://www.changansuzuki.com/khfw/xml/pro.xml 地域信息 http://www. ...
- Python 爬虫实例(15) 爬取 汽车之家(汽车授权经销商)
有人给我吹牛逼,说汽车之家反爬很厉害,我不服气,所以就爬取了一下这个网址. 本片博客的目的是重点的分析定向爬虫的过程,希望读者能学会爬虫的分析流程. 一:爬虫的目标: 打开汽车之家的链接:https: ...
- 利用 Python 只连接一次 MySQL
Github 地址 项目背景 最近做个项目,需要进行试驾分析,所谓"试驾",是指顾客在 4S 店指定人员的陪同下,沿着指定的路线驾驶车辆,从而了解这款汽车的行驶性能和操控性能.通常 ...
- python环境jieba分词的安装
我的python环境是Anaconda3安装的,由于项目需要用到分词,使用jieba分词库,在此总结一下安装方法. 安装说明======= 代码对 Python 2/3 均兼容 * 全自动安装:`ea ...
- python第三方库------jieba库(中文分词)
jieba“结巴”中文分词:做最好的 Python 中文分词组件 github:https://github.com/fxsjy/jieba 特点支持三种分词模式: 精确模式,试图将句子最精确地切开, ...
- python之jieba库
jieba “结巴”中文分词:做最好的 Python 中文分词组件 "Jieba" (Chinese for "to stutter") Chinese tex ...
- Python设计模式 - 基础 - 七大基本原则
提倡使用设计模式,主要出发点就是实现代码复用,增加代码的扩展性和可维护性.如何设计出简洁.易懂.灵活.优美的代码结构的确是一门学问,透彻理解并践行如下七大原则通常都能取得基本满意的结果: - 单一职责 ...
- python记录_day18 反射 判断函数与方法
一.三个内置函数 1.issubclass(a, b) 判断a类是否是b类的子类 class Foo: pass class Zi(Foo): pass class Sun(Zi): pass pr ...
随机推荐
- Windows 好用的护眼软件
目录 1. 按 2. Windows10自带夜间模式 3. Iris Pro 3.1. 介绍 3.1.1. 保护用眼,改善睡眠 3.1.2. ×9 种不同的预设搭配 3.1.3. 计时器 3.1.4. ...
- 实验查看PHP本地的Session信息
通过Nginx调度器负载后端两台Web服务器,实现以下目标: - 部署Nginx为前台调度服务器 - 调度算法设置为轮询 - 后端为两台LNMP服务器 - 部署测试页面,查看PHP本地的Session ...
- Maven生成可以直接运行的jar包的多种方式(转)
转自:https://blog.csdn.net/xiao__gui/article/details/47341385 Maven可以使用mvn package指令对项目进行打包,如果使用java - ...
- alert(1) to win 3
function escape(s) { s = JSON.stringify(s); return '<script>console.log(' + s + ');</script ...
- 免插件,简单实现上拉加载loading
上拉加载是前端经常遇到的问题,采用插件往往能够轻松解决,这里介绍一种免插件简单实现上拉加载的方法,参考一下,下面分享一下代码. html <body> <ul> <li& ...
- django之配置文件setting.py
一:配置文件setting.py中的简单配置更改 BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 简单解释 ...
- Task1.数据集探索
中文数据集THUCNews:https://pan.baidu.com/s/1hugrfRu 密码:qfud 参考:https://blog.csdn.net/SMith7412/article/de ...
- 5G即将到来!我们需要一部怎样的手机呢?
随着5G技术研发试验即将于年底宣告完成,也就意味着2019年起,5G商用将会宣布启动,现在OPPO.vivo.小米.华为.一加等众多手机厂商也宣布启动5G计划,这时5G势必会掀起一股新鲜的血液,5G手 ...
- web应用,http协议简介,web框架
一.web应用 web应用程序是一种可以通过Web访问的应用程序,程序的最大好处是用户很容易访问应用程序,用户只需要有浏览器即可,不需要再安装其他软件.应用程序有两种模式C/S.B/S.C/S是客户端 ...
- JVM虚拟机运行机制
JVM虚拟机运行机制 什么是JVM?虚拟机是物理机器的软件实现.Java是用在VM上运行的WORA(Write Once Run Anywhere)概念而开发的.编译器将Java文件编译为Java . ...