>백엔드 개발 >파이썬 튜토리얼 >Ganji.com에서 채용 정보를 얻는 Python 방법

Ganji.com에서 채용 정보를 얻는 Python 방법

高洛峰
高洛峰원래의
2017-03-04 16:32:481816검색

이 글은 Python을 사용하여 Ganji.com에서 채용 정보를 얻는 방법에 대한 이전 기사를 주로 공유합니다. 관심 있는 친구는

웹사이트에서 관련 정보를 얻고 Ganji 네트워크 채용 정보를 얻는 방법을 참조할 수 있습니다. , 본 글에서는 참고용으로 간지닷컴 채용 정보를 얻기 위해 파이썬을 사용하기 위한 키 코드를 소개하고 있습니다. 구체적인 내용은 다음과 같습니다

import re
import urllib
import urllib.request
#获取赶集网数据
def begin(url):
  #要伪装成的浏览器(我这个是用的chrome)
  headers = ('User-Agent','Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36')
  opener = urllib.request.build_opener()
  #将要伪装成的浏览器添加到对应的http头部
  opener.addheaders=[headers]
  #读取相应的url
  data = opener.open(url).read()
  #将获得的html解码为utf-8
  data=data.decode('utf-8')
  return data
#处理数据,返回字典城市对应城市的url
def get_cityinfo(data):
  city_info1=re.findall(r&#39;dl>(.*?)</dl>&#39;,data,re.S)
  city_info2=re.findall(r&#39;(<a.*?</a>)&#39;,city_info1[0],re.S)
  city_dict={}
  for each in city_info2:
    key=re.findall(&#39;>(.*?)</&#39;,each,re.S)
    city_url=re.findall(&#39;href="(.*?)"&#39;,each,re.S)
    city_dict[key[0]]=city_url[0]
  return city_dict
#获取所有的a标签,并从a标签中获取信息
def a_info(data):
  a_info=re.findall(r&#39;(<a.*?</a>)&#39;,data[0],re.S)
  a_dict={}
  for each in a_info:
    key=re.findall(&#39;>(.*?)</&#39;,each,re.S)
    a_url=re.findall(&#39;"(.*?)"&#39;,each,re.S)
    a_dict[key[0]]=a_url[0]
  return a_dict
#获取对应城市信息的所有分类
def get_cityinfoclass():
    #目前先获取招聘信息,后面有时间再继续补充完善这个模块
  info= &#39;zhaopin/&#39;
  return info
#获取对应城市和其城市分类的信息
def getzhaopin(city_info,infoclass):
  #先搞成都的信息招聘
  city_url=city_info[&#39;成都&#39;]
  cdzp_url=city_url+infoclass
  cdzp_info=begin(cdzp_url)
  return city_url,cdzp_info
#获取成都市招聘信息
def get_zhaopin_info(city_url,cdzp_info):
  allzp_info=re.findall(&#39;class="f-all-news"(.*?)</p>&#39;,cdzp_info,re.S)
  a_dict={}
  class_info=re.findall(&#39;<dd>(.*?)</dd>&#39;,allzp_info[0],re.S)
  for each in class_info:
    a_info=re.findall(r&#39;(<a.*?</a>)&#39;,each,re.S)
    for each1 in a_info:
      key=re.findall(&#39;>(.*?)</&#39;,each1,re.S)
      a_url=re.findall(&#39;href="/(.*?)"&#39;,each1,re.S)
      a_dict[key[0].strip()]=city_url+a_url[0]
  return a_dict
#获取招聘信息的具体内容
def get_city_zpinfo_detail(url):
  #先获取软件工程师
  sorft_engineer=(zp_class_info[&#39;软件工程师&#39;])
  job_url_info=begin(sorft_engineer)
  get_detail_info(job_url_info)
#处理详情页的信息
def get_detail_info(list_info):
  job_info=re.findall(&#39;<dl class="list-noimg job-list clearfix"(.*?)</dl&#39;,list_info,re.S)
  print(job_info[0])
if __name__==&#39;__main__&#39;:
  url=&#39;http://www.ganji.com/index.htm&#39;;
  data=begin(url);
  #所有城市信息
  city_info=get_cityinfo(data)
  #对应的分类
  infoclass=get_cityinfoclass()
  cdzp_url,xiaoshou=getzhaopin(city_info,infoclass)
  #获取招聘的分类信息
  zp_class_info=get_zhaopin_info(cdzp_url,xiaoshou)
  get_city_zpinfo_detail(zp_class_info)

위 내용은 이 글의 요약 모든 내용, 모든 분들의 공부에 도움이 되었으면 좋겠습니다.

Ganji.com에서 채용 정보를 얻는 더 많은 Python 방법을 보려면 PHP 중국어 웹사이트를 주목하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.