用requests、正则表达、Json爬取51job职位信息
运行过程及结果如图:
源代码:
import requests
import re
import json
def get_html(url):
#设置请求头
heade = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36'}
#获取html内容
res = requests.get(url,headers = heade)
#正则表达式匹配找到相关信息岗位信息
result = re.findall("window.__SEARCH_RESULT__(.*?)</script>",res.text)
#岗位信息转化为json格式
txt = json.loads(result[0][2:])
#循环输出职位信息(职位名,公司名,工资,相关信息)
for i in txt['engine_search_result']:
print(i['job_name'],i['company_name'],i['providesalary_text'],i['attribute_text'])
if __name__ == '__main__':
name = input("请输入爬取的职位:")
pages = int(input("请输入爬取页数:"))
url = 'https://search.51job.com/list/010000,000000,0000,00,9,99,'
#拼接html岗位名信息
url = url+name+',2,'
for i in range(1,pages+1):
#拼接html页码信息
url = url+str(i)+'.html'
#运行爬虫
get_html(url)