Crawler:爬虫之基于https+parse库实现爬取国内某知名招聘网上海、北京关于区块链职位的求职信息

举报
一个处女座的程序猿 发表于 2021/03/28 02:25:44 2021/03/28
【摘要】 Crawler:爬虫之基于https+parse库实现爬取国内某知名招聘网上海、北京关于区块链职位的求职信息     目录 输出结果 1、上海区块链职位 2、北京区块链职位 设计思路 核心代码           输出结果 1、上海区块链职位 国内某知名招聘网上海关于区块链职位的求职信息分析图   2、北京区块链职位 国内某知名...

Crawler:爬虫之基于https+parse库实现爬取国内某知名招聘网上海、北京关于区块链职位的求职信息

 

 

目录

输出结果

1、上海区块链职位

2、北京区块链职位

设计思路

核心代码


 

 

 

 

 

输出结果

1、上海区块链职位

国内某知名招聘网上海关于区块链职位的求职信息分析图

 

2、北京区块链职位

国内某知名招聘网北京关于区块链职位的求职信息分析图

 

设计思路

Python实现爬取国内某知名招聘网上海、北京关于区块链职位的求职信息

 

 

 

核心代码


  
  1. from https import Http
  2. from parse import Parse
  3. from setting import headers
  4. from setting import cookies
  5. import time
  6. import logging
  7. import codecs
  8. #logging.basicConfig函数为日志系统做基本配置:Python写比较大型的程序,用日志系统会方便发现错误。
  9. logging.basicConfig(level=logging.ERROR,
  10. format='%(asctime)s Process%(process)d:%(thread)d %(message)s',
  11. datefmt='%Y-%m-%d %H:%M:%S',
  12. filename='diary.log',
  13. filemode='a')
  14. def getInfo(url, para): #输入网址、参数实现获取网页上的内容
  15. generalHttp = Http()
  16. htmlCode = generalHttp.post(url, para=para, headers=headers, cookies=cookies)
  17. generalParse = Parse(htmlCode)
  18. pageCount = generalParse.parsePage()
  19. info = []
  20. def getInfoDetail(generalParse):
  21. info = generalParse.parseInfo()
  22. return info
  23. def processInfo(info, para): #实现将爬取的网页内容存入到xls表格文件
  24. logging.error('Process start')
  25. try:
  26. title = '公司名称\t公司类型\t融资阶段\t标签\t公司规模\t公司所在地\t职位类型\t学历要求\t福利\t薪资\t工作经验\t发布时间\n'
  27. file = codecs.open('%s市有关区块链的职位信息表.xls' % para['city'], 'w', 'utf-8')
  28. file.write(title) #file.write函数先将xls表格的列名写入xls文件内
  29. for p in info: #for循环依次将十二个字段的内容写入xls文件
  30. line = str(p['companyName']) + '\t' + str(p['companyType']) + '\t' + str(p['companyStage']) + '\t' + \
  31. str(p['companyLabel']) + '\t' + str(p['companySize']) + '\t' + str(p['companyDistrict']) + '\t' + \
  32. str(p['positionType']) + '\t' + str(p['positionEducation']) + '\t' + str(
  33. p['positionAdvantage']) + '\t' + \
  34. str(p['positionSalary']) + '\t' + str(p['positionWorkYear']) + '\t' + str(p['createTime'])+'\n'
  35. file.write(line) #最后将line写入xls文件
  36. file.close() #file.close()关闭xls文件
  37. return True
  38. except Exception as e:
  39. print(e)
  40. return None
  41. def main(url, para): #函数开始进行爬取网址
  42. logging.error('Main start')
  43. if url:
  44. info = getInfo(url, para)
  45. flag = processInfo(info, para)
  46. return flag
  47. else:
  48. return None
  49. if __name__ == '__main__':
  50. kdList = [u'区块链']
  51. cityList = [u'上海', u'北京']
  52. url = 'https://www.lagou.com/jobs/positionAjax.json'
  53. for city in cityList:
  54. print('现在开始爬取%s' % city)
  55. para = {'first': 'true', 'pn': '1', 'kd': kdList[0], 'city': city} #{,页数,城市}
  56. flag = main(url, para)
  57. if flag: #if人性化输出是否爬取成功
  58. print('%s爬取成功!' % city)
  59. else:
  60. print('%s爬取失败!' % city)

 

 

 

文章来源: yunyaniu.blog.csdn.net,作者:一个处女座的程序猿,版权归原作者所有,如需转载,请联系作者。

原文链接:yunyaniu.blog.csdn.net/article/details/79874277

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。