import chardet,re,json,pymysql
from urllib import request,parse
from piaot import *
def sql(sql_z):
# 打开数据库连接
db = pymysql.connect("192.168.43.128", "root", "123456", "boss", charset='utf8')
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# 使用 execute() 方法执行 SQL 查询
cursor.execute('')
# 使用 fetchone() 方法获取单条数据.
data = cursor.fetchone(sql_z)
print("Database version : %s " % data)
# print(x)
# 关闭数据库连接
db.close()
def sql_cx(sql_z):
# 打开数据库连接
db = pymysql.connect("192.168.43.128", "root", "123456", "boss", charset='utf8')
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# 使用 execute() 方法执行 SQL 查询
data=cursor.execute(sql_z)
# print("Database version : %s " % data)
# 关闭数据库连接
db.close()
return data
def chengshi(sheng,shi):
if shi == None:
shi=sheng
url = 'http://www.zhipin.com/common/data/city.json'
# 调用自定义包
req = yc(url)
ll = chardet.detect(req)
html = req.decode(ll['encoding'])
# 用json解码
html=json.loads(html)
b=[]
for j in html['data']['cityList']:
if j['name'] == sheng:
for i in j['subLevelModelList']:
if i['name'] == shi:
b.append((i['name'],i['code']))
# 返回格式:['保定',101091100]
return b
def pq_xx(sheng,qu,nr,ye):
# 将name值转成url编码
name = parse.quote(nr)
for i in range(1,ye+1):
if qu == None:
# 拼接url地址
url = 'http://www.zhipin.com/job_detail/?query={}&scity={}&page={}'.format(name,sheng[0][1],ye)
else:
# 将城市值转成url编码
qu = parse.quote(qu)
# 拼接url地址
url='http://www.zhipin.com/c{}/b_{}-h_{}/?query={}&page={}'.format(sheng[0][1],qu,sheng[0][1],name,ye)
pq_lb_nr(url)
def pq_lb_nr(url):
req=yc(url)
ll=chardet.detect(req)
html=req.decode(ll['encoding'])
zz='\s*?
def pq_nr(url):
try:
# 提交申请,调用自定义包
req = yc(url)
# 自动检测编码格式
ll = chardet.detect(req)
# 转码
html = req.decode(ll['encoding'])
# 正则
zz = 'ka="job-breadcrumb-top4">(.*?)|(.*?)|(.*?)|(.*?)(.*?)(.*?)
'
str_1 = re.compile(zz)
html_1 = str_1.findall(html)
# 将获得标题的信息进行去除空值
x = []
for i in html_1:
for j in i:
if j != '':
x.append((j.split(':')[-1]))
x.pop(-2)
# x值是清洗好的值
# print(x)
# 正则,获得内容里的岗位职责和任职要求和地址图片
zz_1 = 'div class="text">\s*(.*?)\s*?
def boss():
# 调用查询城市函数
print('BOSS直聘')
sheng=input('请输入你查询的省:')
print('--'*20)
shi=input('请输入查询寻城市(默认无):')
print('--' * 20)
qu=input('请输入区或县(默认:空)')
print('--' * 20)
nr=input('请输入查询内容:')
print('--' * 20)
ye=int(input('请输入页数:'))
if len(shi) == 0:
shi=None
if len(qu) == 0:
qu=None
url=chengshi(sheng,shi)
# # 值1是:遍历出的输入的城市编号,值2:输入的区或县名称,值3:输入查询的内容名称,值4:页数
pq_xx(url,qu,nr,ye)
if name == ‘main‘:
boss()