运行效果:
代码实现:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2020/11/24 8:51
# @Author : huni
# @File : 车牌号.py
# @Software: PyCharm
import requests
from lxml import etree
import sqlite3
def getData(url):
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36'}
cata = requests.get(url=url,headers=headers).text
# # 处理中文乱码问题
# cata = cata.text.encode('ISO-8859-1').decode('utf-8')
tree = etree.HTML(cata)
mcon_list = tree.xpath('//div[@class="mcon"]//text()')[81:]
# print(mcon_list)
all_info_list = []
for mcon in mcon_list:
pai = []
pai.append(mcon[:4].strip('【】'))
pai.append(mcon[4:])
all_info_list.append(pai)
return all_info_list
#数据保存到数据库
def saveDatadb(dbpath,all_info_list):
init_db(dbpath)
conn = sqlite3.connect(dbpath)
cur = conn.cursor()
for data in all_info_list:
for index in range(len(data)):
data[index] = '"'+str(data[index])+'"' #replace into
sql = '''
insert into 车牌号表(
车牌前两位,所属地区)
values(%s)'''%",".join(data)
# print(sql)
cur.execute(sql)
conn.commit()
cur.close()
conn.close()
#初始化数据库,创建表
def init_db(dbpath):
sql1 = '''
drop table if exists 车牌号表
''' # 删除原来的数据表
sql2 = '''
create table if not exists 车牌号表
(
车牌前两位 varchar ,
所属地区 varchar
)
''' # 创建数据表
conn = sqlite3.connect(dbpath)
cursor = conn.cursor()
cursor.execute(sql1)
cursor.execute(sql2)
conn.commit()
conn.close()
def main():
url = 'https://chepai.911cha.com/'
all_info_list = getData(url)
dbpath = '车牌号.db'
saveDatadb(dbpath,all_info_list)
if __name__ == '__main__':
main()
print('保存成功')