#!C:\Python36\python.exe
# -*- coding:utf-8 -*-
import urllib2
import urllib
import re
import lxml
import lxml.etree
import threading
rlock = threading.RLock()

header = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.79 Safari/537.36"}


# 获得岗位数量
def getJobNum(url):
    request = urllib2.Request(url, headers=header)
    response = urllib2.urlopen(request).read()
    # print response
    # 数量
    myre = "<em>(\d+)</em>"
    regex = re.compile(myre)
    res = regex.findall(response)
    print res
    return res[0]


# 获取岗位详细信息
def getWorkMessage(url):
    request = urllib2.Request(url, headers=header)
    response = urllib2.urlopen(request).read()
    myre = "<!-- SWSStringCutStart -->[\s\S](.*)<!-- SWSStringCutEnd -->"
    regex = re.compile(myre, re.S)
    res = regex.findall(response)
    return res[0].replace("\r\n", "").replace("<p>", "").replace("</p>", "").replace("<br/>", "")


# 获取岗位
def getJob(ulist):
    for url in ulist:
        request = urllib2.Request(url, headers=header)
        response = urllib2.urlopen(request).read()
        # print response
        mytree = lxml.etree.HTML(response)
        joblist = mytree.xpath("//table[@class=\"newlist\"]")
        # //*[@id="newlist_list_content_table"]/table[2]/tbody/tr[1]/td[3]/a[1]
        # //*[@id="newlist_list_content_table"]/table[2]/tbody/tr[1]/td[3]
        print joblist
        print len(joblist)
        # jobname = []  # 职位名称
        # jobLink = []  # 链接
        # companyName = []  # 公司名称
        # salary = []  # 薪水
        # workplace = []  # 工作地点
        for job in joblist:
            jobname = job.xpath("//tr/td[1]/div/a[1]/text()")
            jobLink = job.xpath("//tr/td[1]/div/a[1]/@href")
            companyName = job.xpath("//tr/td[3]/a[1]/text()")
            salary = job.xpath("//tr/td[4]/text()")
            workplace = job.xpath("//tr/td[5]/text()")
            try:
                for i in range(len(jobname)):
                    print jobname[i], getWorkMessage(jobLink[i]), companyName[i], salary[i], workplace[i]
            except:
                pass


if __name__ == '__main__':
    url = "https://sou.zhaopin.com/jobs/searchresult.ashx?jl=%E6%B7%B1%E5%9C%B3&kw=python&sm=0&p=1"
    # num = getJobNum(url)
    num = 2910
    page = 0
    if num % 60 == 0:
        page = num // 60
    else:
        page = num // 60 + 1

    myList = ["https://sou.zhaopin.com/jobs/searchresult.ashx?jl=%E6%B7%B1%E5%9C%B3&kw=python&sm=0&p=" + str(i) for i in
              range(1, page + 1)]

    for i in myList:
        print i

    # getWorkMessage("http://jobs.zhaopin.com/216494030250784.htm?ssidkey=y&ss=201&ff=03&sg=a039dd863e79428fbf07568274f6f927&so=9")

    # getJob("https://sou.zhaopin.com/jobs/searchresult.ashx?jl=%E6%B7%B1%E5%9C%B3&kw=python&sm=0&p=1")
    # for i in myList:
    #     # print getJob(i)
    #     threading.Thread(target=getJob, args=(i,)).start()


    urllist = [[] for _ in range(10)]
    # # urllist = [[]]*10
    # print urllist
    # for i in urllist:
    #     print id(i)
    N = len(urllist)

    for i in range(len(myList)):
        urllist[i % N].append(myList[i])

    ThreadList = []
    for ulist in urllist:
        # print ulist
        t = threading.Thread(target=getJob, args=(ulist,))
        t.start()
        ThreadList.append(t)

    for t in ThreadList:
        t.join()

results matching ""

    No results matching ""