Auth: 王海飞
Data:2018-06-06
Email:[email protected]
当我们通过百度搜索引擎去搜索python语言的时候,可以发现百度搜索的url中有很多无用的参数,过滤掉无用的参数,最后的请求url可以展示为,如下的信息:
https://www.baidu.com/s?wd=python%E8%AF%AD%E8%A8%80
其中搜索的是python语言,中文被编码为3个字符表示
from urllib import parse
# 编码
enstr = parse.urlencode({'kd': '千峰'})
# 打印的结果为 kd=%E5%8D%83%E5%B3%B0
print(enstr)
# 解码
destr = parse.unquote(enstr)
# 解码的结果为 kd=千峰
print(destr)
自定义百度的搜索url,获取页面源码。以下案例中,我搜索王海飞,查看一下搜索e的结果页面如何。
import urllib.request
from urllib import parse
def baidu_api(search):
url = 'https://www.baidu.com/s?' + search
header = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36'
}
res = urllib.request.Request(url=url, headers=header)
r = urllib.request.urlopen(res)
print(r.read().decode('utf-8'))
if __name__ == '__main__':
search = input('请输入搜索的数据:')
wd = parse.urlencode({'wd': search})
baidu_api(wd)
import urllib.request
import re
from urllib import parse
def zhaopin_msg(url):
"""
获取智联上招聘信息
1. 获取职位的个数
<span class="search_yx_tj">
共<em>1473</em>个职位满足条件
</span>
"""
header = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36'
}
req = urllib.request.Request(url=url, headers=header)
res = urllib.request.urlopen(req)
# 正则匹配,查询的结果为职位的个数
count_job = re.findall('<em>(\d+)</em>', res.read().decode('utf-8'))
return count_job
if __name__ == '__main__':
# 获取从客户端接收到的参数
job_name = input('请输入岗位名称:')
city_name = input('请输入城市名称:')
# 将输入参数进行编码,输入参数,python和成都,输出结果为:jl=%E6%88%90%E9%83%BD&kw=python
search_params = parse.urlencode({'jl': city_name, 'kw': job_name})
# urllib进行解析的网站的url
url = 'https://sou.zhaopin.com/jobs/searchresult.ashx?%s' % search_params
# 进行解析地址
result = zhaopin_msg(url)
print(result)
调试:搜索成都的python岗位的职位个数