经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » Python » 查看文章
我的爬虫自学之旅
来源:cnblogs  作者:Motioni  时间:2018/9/26 18:00:31  对本文有异议

电子版参考书:https://pan.baidu.com/s/15R08yEjLDj8FxrBwnUaTyA 注:仅限网上学习交流,如有侵权请联系我

我们一起学习┏(^0^)┛

自我介绍,我是一个python迈过基础游荡在爬虫自学之路的一只小蚂蚁。在计算机编程漫长枯燥的道路上,很多技术博客帮助了我,心怀感激,想把自己的经历也记录下来,这是我的第一篇博客,如有瑕疵请多包涵,谢谢~对了,如果你也是自学入门的,来试试hackerrank.com,我只是需要一个队友~你会有不一样的感受的^_^

 

 

安装第三方库经常报错:error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": http://landinghub.visualstudio.com/visual-cpp-build-tools

下载:https://download.microsoft.com/download/5/f/7/5f7acaeb-8363-451f-9425-68a90f98b238/visualcppbuildtools_full.exe?fixForIE=.exe.       安装挺久,但一劳永逸有木有哈哈?

安装selenium,chromedriver.exe地址:http://chromedriver.storage.googleapis.com/index.html?path=2.41/()

我的是windows系统,文件放在python/Scripts目录下,不用配置环境变量。本文只用Chrome爬虫。

 照教程爬了猫眼排行榜还是啥也不懂的我,接了朋友给的艰巨任务:智联招聘(【内牛满面】)

所学库不多,但好歹迈出了第一步。对代码运行结果也有困惑,希望交流~

 

  1. from urllib.parse import urlencode
  2. import requests
  3. import json
  4. import csv
  5. import time
  6. def get_one_page(page):
  7. headers = {
  8. 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36'
  9. }
  10. params = {
  11. 'start': '',
  12. 'pageSize': '60',
  13. 'cityId': '489',
  14. 'workExperience': '-1',
  15. 'education': '-1',
  16. 'companyType': '-1',
  17. 'employmentType': '-1',
  18. 'jobWelfareTag': '-1',
  19. 'kw': '数据分析师',
  20. 'kt': '3',
  21. 'lastUrlQuery': {"p": page,
  22. "pageSize": "60",
  23. "jl": "489",
  24. "kw": "数据分析师",
  25. "kt": "3"
  26. }
  27. }
  28. base_url = 'https://fe-api.zhaopin.com/c/i/sou?'
  29. url = base_url + urlencode(params)
  30. # print(url)
  31. response = requests.get(url, headers=headers)
  32. try:
  33. if response.status_code == 200:
  34. return response.json()
  35. except Exception as e:
  36. print('Error:', e)
  37. @get_one_page
  38. def func(page):
  39. if page == 0:
  40. get_one_page().params.pop('start')
  41. get_one_page().params['lastUrlQuery'].pop('p')
  42. else:
  43. get_one_page().params['start'] = 60 * (page - 1)
  44. return get_one_page()
  45. def parse_page(json):
  46. if json.get('data'):
  47. data = json.get('data').get('results')
  48. data_list = []
  49. for item in data:
  50. job_name = item.get('jobName')
  51. salary = item.get('salary')
  52. company = item.get('company').get('name')
  53. welfare = item.get('welfare')
  54. city = item.get('city').get('name')
  55. work = item.get('workingExp').get('name')
  56. edu_level = item.get('eduLevel').get('name')
  57. data_list.append([job_name, company, welfare, salary, city, work, edu_level])
  58. print(data_list)
  59. return data_list
  60. def save_data(datas):
  61. with open('data_zhilian_findjob.csv', 'w') as csvfile:
  62. writer = csv.writer(csvfile)
  63. writer.writerow(['job_name', 'company', 'welfare,salary', 'city', 'workingExp', 'edu_level'])
  64. for row in datas:
  65. writer.writerow(row)
  66. def main():
  67. for page in range(20):
  68. json = get_one_page(page)
  69. data = parse_page(json)
  70. # print(data)
  71. time.sleep(0.8)
  72. save_data(data)
  73. if __name__ == '__main__':
  74. main()

 

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号