吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2634|回复: 15
收起左侧

[Python 原创] 小白刚学习python爬虫,分享一下代码,tx招聘的数据

  [复制链接]
来两碗米饭 发表于 2019-8-25 11:18
本帖最后由 3651535042 于 2019-8-26 20:42 编辑

有免费评分的。给下评分谢谢。攒点吾爱币去换教程!

刚刚学习python爬虫一个星期,所以写的并不是很好,大牛看到直接略过就好。

爬取的是腾讯招聘信息数据  用的库有,requests,threading,json(网站的数据是在ajax里所以需要json),pandas(保存csv数据),



[Asm] 纯文本查看 复制代码
import requests
from lxml import etree
import time
from threading import Thread
import json
import pandas as pd

headers={
    #请求头
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36'
}
    #定义get函数
def get_html(url):
    try:
        r = requests.get(url,headers=headers)
        r.encoding='utf8'
        print('开始采集')
        time.sleep(2)
        return r.text
    except EnvironmentError as e:
        return e


def get_xpath(html):
    data=json.loads(html)
    names=[]
    locations=[]
    bgns=[]
    products=[]
    cates=[]
    times=[]
    for i in data['Data']['Posts']:
        #职位名称
        name = i['RecruitPostName']
        #所在地
        location = i['LocationName']
        #
        bgn = i['BGName']
        #
        product = i['ProductName']
        #工作类型
        cate = i['CategoryName']
        #发布时间
        time = i['LastUpdateTime']
        names.append(name)
        locations.append(location)
        bgns.append(bgn)
        products.append(product)
        cates.append(cate)
        times.append(time)

    tp = pd.DataFrame({
        '职位':names,
        '地址':locations,
        '分级':bgns,
        '部门':products,
        '类型':cates,
        '发布时间':times
    })
    tp.to_csv('腾讯招聘.csv',encoding='utf8',mode='a',index=None,header=False)


def main(start_url,end_url):
    for i in range(start_url,end_url):
        url='https://careers.tencent.com/tencentcareer/api/post/Query?timestamp=1566200594583&countryId=&cityId=&bgIds=&productId=&categoryId=40001001,40001002,40001003,40001004,40001005,40001006,40002001,40002002,40003001,40003002,40003003,40004,40005001,40005002,40006,40007,40008,40009,40010,40011&parentCategoryId=&attrId=&keyword=&pageIndex={}&pageSize=10&language=zh-cn&area=cn'.format(i)
        data=get_html(url=url)
        get_xpath(html=data)

if __name__ == '__main__':
    #多线程
    thread=[]
    t1=Thread(target=main,args=(0,100))
    t2=Thread(target=main,args=(100,200))
    t3=Thread(target=main, args=(200,300))
    t4=Thread(target=main,args=(300,400))
    t5=Thread(target=main,args=(400,492))
    thread +=[t1,t2,t3,t4,t5]
    for i in thread:
        i.start()
    for i in thread:
        i.join()



代码如果有什么问题可以评论

免费评分

参与人数 4吾爱币 +5 热心值 +3 收起 理由
bakaest + 1 + 1 谢谢分享!
吾爱小洪 + 1 + 1 我很赞同!
Corina + 1 + 1 用心讨论,共获提升!
小飞网络 + 2 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| 来两碗米饭 发表于 2019-8-25 13:51
cc78947 发表于 2019-8-25 11:43
except EnvironmentError as e:
        return e
异常处理没必要return ,  其他写的挺好的, 都用起 ...

那保存成什么,现在只知道数据能保存成CSV和json
cc78947 发表于 2019-8-25 11:43
   except EnvironmentError as e:
        return e
异常处理没必要return ,  其他写的挺好的, 都用起来pd了, 保存成csv有点浪费
fudashuai 发表于 2019-8-25 11:35
topgu 发表于 2019-8-25 11:43
分享学习,共同进步
你过来呀 发表于 2019-8-25 11:44
楼主有教程吗,分享一下,马上开学了有的是时间学一下
骑狗的猴子 发表于 2019-8-25 11:50
可以的 走出了第一步
海蓝浪花 发表于 2019-8-25 11:53
不错 很好
cj13888 发表于 2019-8-25 12:19
学习了,点赞
kesai 发表于 2019-8-25 12:26
感谢大佬的分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-16 13:49

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表