python 爬虫之校园招聘信息

来源:互联网 发布:达内软件开发 编辑:程序博客网 时间:2024/04/29 09:54


        之前的程序出了点小bug,已修改但暂时完善程序,忘见谅。在小小python爬虫,写了个半成品的爬虫学校校园招聘的信息的爬虫,今天把BeautifulSoup撸了一遍,决定用它把这个爬虫完善一下。由于学校招聘网站的页面嵌套略深,用正则会非常的吃力(还是我正则不够好,逃),这时候BeautifulSoup就派上用场了,相关的官方文档在这BeautifulSoup中文文档

        程序会捉取“招聘信息”、“南校区招聘会”、“北校区招聘会”三个栏目的内容,第四个栏目的在另外的页面暂时不管(多次捉取页面都失败,估计是动态加载的)以后再说。

    直接上源码:

#! /usr/bin/env python#coding:utf-8# @file xidian.py# @description  学校校园招聘,信息捉取# @author doodlesomething# @version 1.0# @date 2014-11-17from BeautifulSoup import BeautifulSoupfrom BeautifulSoup import BeautifulStoneSoupimport re,urllib2,sys,osreload(sys)sys.setdefaultencoding('gbk')### @description  ## @param    xdUrl## @return   page_contentdef getPageContent(xdUrl):req = urllib2.Request(url = xdUrl)try:response  = urllib2.urlopen(req)except urllib2.URLError,e:return epage_content = response.read()return page_contentdef getJobInfo(page_content):    page_soup = BeautifulSoup(page_content)    job_content = page_soup.find("div",{"class":"imiddleb mt5"})    job_info = job_content.findAll("div",{"id":re.compile('con_two_.')})    return job_info### @description  ## @param    zhao_info# @param    url_prefixdef get_zhao(zhao_info,url_prefix):    for liTag in zhao_info[:-2]:        spanTag,aTag = liTag.findAll(['span','a'])        print spanTag.string        print aTag.string        print url_prefix + aTag['href']### @description  ## @param    info# @param    url_prefixdef get_nanbei(info,url_prefix):    for trTag in info[2:-2]:        linkTag,placeTag,timeTag = trTag.findAll('td')        print url_prefix + linkTag.a['href']        print linkTag.a.string        print placeTag.string        print  BeautifulStoneSoup(timeTag.string,convertEntities = BeautifulStoneSoup.HTML_ENTITIES)xdUrl = 'http://job.xidian.edu.cn/index.html'url_prefix = 'http://job.xidian.edu.cn'page_content = getPageContent(xdUrl).encode('utf-8')job_info = getJobInfo(page_content)zhao_info = job_info[0].findAll('li')nan_info = job_info[1].findAll('tr')bei_info = job_info[2].findAll('tr')get_nanbei(nan_info,url_prefix)get_nanbei(bei_info,url_prefix)get_zhao(zhao_info,url_prefix)    

  
   我做测试输出到文件中的效果:

  

 

   捉取信息的目的已经达到,下面要做的就是将用户定制的相应的信息发送到指定的邮箱,但是由于鼓捣了半个小时的smtplib也没能成功发送出一封邮件(逃)所以决定今晚先睡,明天再说。接下来的一篇博客应该会介绍实现邮件发送并将程序完善把第四个栏目也捉取一下,面向对象化,把源码放到GitHub。

    以上,如有错误欢迎交流指正!

     



    


0 0
原创粉丝点击