用PYTHON写的第一个爬虫程序,并以EXCEL格式保存

  • 2017-06-13
  • 0

自己动手写的第一个Python爬虫,代码比较渣,大神略过。

# _*_ coding:utf-8 _*_
import requests,xlwt,json,time,random
items=[]
def get_content(pn):
    url='https://www.lagou.com/jobs/positionAjax.json?needAddtionalResult=false' #提交的URL
    data={'first':'true',           #带参数提交
            'pn':pn,
            'kd':'python'}
    html=requests.post(url,data).text  #获取网页内容
    html=json.loads(html)     #转成JSON格式
    for i in range(14):
        item=[]
        item.append(html['content']['positionResult']['result'][i]['positionName']) #职位名称
        item.append(html['content']['positionResult']['result'][i]['salary']) #薪资
        item.append(html['content']['positionResult']['result'][i]['companyFullName']) #公司名称
        item.append(html['content']['positionResult']['result'][i]['workYear']) #要求
        # print u'职位名称:%s 薪资:%s  公司名: %s 要求: %s'%item[0],%item[1],%item[2],%item[3]
        print u'职位名称:%s\n'u'工资:%s\n' u'公司名称:%s\n'u'要求:%s\n'%(item[0],item[1],item[2],item[3])
        items.append(item)
    return items


def  excel_write():
    newtable='test.xls'#excel表名
    wb=xlwt.Workbook(encoding='utf-8') #创建并设置表
    ws=wb.add_sheet('text1') #创建表的名称
    headData=['职位名称','薪资','公司名称','要求'] #设置EXCEL表头
    for hd in range(0,4):
        ws.write(0,hd,headData[hd],xlwt.easyxf('font:bold on ')) #第0行0例开始写入表头
    id=1
    index=1
    while id<=4:
        get_content(id)
        id+=1
        time.sleep(random.randrange(0,3))#随机休眠几秒防IP锁定
    for item in items:  #从列表数组里取一行
        for i in range(0,4):  #从item里取出每列的值
            ws.write(index,i,item[i])
        index+=1
        wb.save(newtable)#保存并生成EXCEL

if __name__=="__main__":
    excel_write()
    print u'*****************共爬取并写入EXCEL数据%s条************'%len(items)