1. from urllib import request
  2. import urllib
  3. import ssl
  4. import json
  5.  
  6. url = 'https://www.lagou.com/jobs/positionAjax.json?needAddtionalResult=false'
  7. headers = {
  8. 'User-Agent': "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) "
  9. "Chrome/75.0.3770.100 Safari/537.36",
  10. 'Referer': "https://www.lagou.com/jobs/list_Python?labelWords=&fromSearch=true&suginput=",
  11. 'Origin': "https://www.lagou.com",
  12. 'Accept': "application/json, text/javascript, */*; q=0.01",
  13. 'Content-Type': "application/x-www-form-urlencoded; charset=UTF-8",
  14. 'Accept-Language': "zh-CN,zh;q=0.9",
  15. 'Connection': "keep-alive",
  16. 'Content-Length': "25",
  17. 'Cookie':"JSESSIONID=ABAAABAAAIAACBI7B0E6DD979133FD3E0688BD2A172D462; user_trace_token=20190625152253-372d4fd2-d2d9-4a1e-b1db-adbaf15de59b; Hm_lvt_4233e74dff0ae5bd0a3d81c6ccf756e6=1561447375; _ga=GA1.2.502816238.1561447375; LGSID=20190625152254-0c9bc1d7-971a-11e9-a4bc-5254005c3644; LGUID=20190625152254-0c9bc483-971a-11e9-a4bc-5254005c3644; _gid=GA1.2.1461701224.1561447375; index_location_city=%E5%85%A8%E5%9B%BD; TG-TRACK-CODE=index_search; X_HTTP_TOKEN=d0da23584e25293624994416516081f1b40cdf8579; Hm_lpvt_4233e74dff0ae5bd0a3d81c6ccf756e6=1561449942; LGRID=20190625160542-0718c5c5-9720-11e9-a4bc-5254005c3644; SEARCH_ID=af21aa4087114adf8c011b4f809dc9bd",
  18. }
  19. data = {
  20. 'first': 'true',
  21. 'pn': 1,
  22. 'kd': 'Python'
  23. }
  24. new_data = urllib.parse.urlencode(data)
  25. req = request.Request(url, headers=headers, data=new_data.encode('utf-8'), method='POST')
  26. context = ssl._create_unverified_context()
  27. res = request.urlopen(req, context=context, timeout=60)
  28. res_json = json.loads(res.read())
  29. print(res_json)
  30. print(res_json['content']['positionResult']['result'])
  31. with open('/Users/mac/PycharmProjects/TEST/TEST/爬虫day/file/lago.txt', 'w') as f:
  32. f.write(res_json)
  33.  
  34. # 出现请求太频繁的解决 伪造浏览器 完善请求头

避免请求太频繁 方法

  1. import requests
  2. import time
  3. import json
  4.  
  5. def main():
  6. url_start = "https://www.lagou.com/jobs/list_python?city=%E6%88%90%E9%83%BD&cl=false&fromSearch=true&labelWords=&suginput="
  7. url_parse = "https://www.lagou.com/jobs/positionAjax.json?city=天津&needAddtionalResult=false"
  8. headers = {
  9. 'Accept': 'application/json, text/javascript, */*; q=0.01',
  10. 'Referer': "https://www.lagou.com/jobs/list_Python?labelWords=&fromSearch=true&suginput=",
  11. 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36' }
  12. for x in range(1, 5):
  13. data = {
  14. 'first': 'true',
  15. 'pn': str(x),
  16. 'kd': 'Python'
  17. }
  18. s = requests.Session() # 创建一个session对象
  19. s.get(url_start, headers=headers, timeout=3) # 用session对象发出get请求,请求首页获取cookies
  20. cookie = s.cookies # 为此次获取的cookies
  21. response = s.post(url_parse, data=data, headers=headers, cookies=cookie, timeout=3) # 获取此次文本
  22. time.sleep(5)
  23. response.encoding = response.apparent_encoding
  24. text = json.loads(response.text)
  25. info = text["content"]["positionResult"]["result"]
  26. print(info)
  27.  
  28. if __name__ == '__main__':
  29. main()

【实战】用request爬取拉勾网职位信息的更多相关文章

  1. python爬虫(三) 用request爬取拉勾网职位信息

    request.Request类 如果想要在请求的时候添加一个请求头(增加请求头的原因是,如果不加请求头,那么在我们爬取得时候,可能会被限制),那么就必须使用request.Request类来实现,比 ...

  2. 【图文详解】scrapy爬虫与动态页面——爬取拉勾网职位信息(2)

    上次挖了一个坑,今天终于填上了,还记得之前我们做的拉勾爬虫吗?那时我们实现了一页的爬取,今天让我们再接再厉,实现多页爬取,顺便实现职位和公司的关键词搜索功能. 之前的内容就不再介绍了,不熟悉的请一定要 ...

  3. node.js爬虫爬取拉勾网职位信息

    简介 用node.js写了一个简单的小爬虫,用来爬取拉勾网上的招聘信息,共爬取了北京.上海.广州.深圳.杭州.西安.成都7个城市的数据,分别以前端.PHP.java.c++.python.Androi ...

  4. 基于selenium爬取拉勾网职位信息

    1.selenium Selenium 本是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.而这一特性为爬虫开发提供了一个选择及方向,由于其本身依赖 ...

  5. python爬取拉勾网职位信息-python相关职位

    import requestsimport mathimport pandas as pdimport timefrom lxml import etree url = 'https://www.la ...

  6. 爬取拉勾网招聘信息并使用xlwt存入Excel

    xlwt 1.3.0 xlwt 文档 xlrd 1.1.0 python操作excel之xlrd 1.Python模块介绍 - xlwt ,什么是xlwt? Python语言中,写入Excel文件的扩 ...

  7. scrapy抓取拉勾网职位信息(一)——scrapy初识及lagou爬虫项目建立

    本次以scrapy抓取拉勾网职位信息作为scrapy学习的一个实战演练 python版本:3.7.1 框架:scrapy(pip直接安装可能会报错,如果是vc++环境不满足,建议直接安装一个visua ...

  8. python-scrapy爬虫框架爬取拉勾网招聘信息

    本文实例为爬取拉勾网上的python相关的职位信息, 这些信息在职位详情页上, 如职位名, 薪资, 公司名等等. 分析思路 分析查询结果页 在拉勾网搜索框中搜索'python'关键字, 在浏览器地址栏 ...

  9. Python爬取拉勾网招聘信息并写入Excel

    这个是我想爬取的链接:http://www.lagou.com/zhaopin/Python/?labelWords=label 页面显示如下: 在Chrome浏览器中审查元素,找到对应的链接: 然后 ...

随机推荐

  1. Linux下使用Vi是方向键变乱码 退格键不能使用的解决方法

    在Linux下编辑一些文件.这就涉及到了vi这个编辑器了.在Linux下,初始使用vi的时候有点问题.就是在编辑模式下使用方向键的时候,并不会使光标移动,而是在命令行中出现[A [B [C [D之类的 ...

  2. [WebGL入门]十二,模型数据和顶点属性

    注:文章译自http://wgld.org/,原作者杉本雅広(doxas),文章中假设有我的额外说明,我会加上[lufy:].另外.鄙人webgl研究还不够深入,一些专业词语.假设翻译有误.欢迎大家指 ...

  3. LeetCode 三数之和 — 优化解法

    LeetCode 三数之和 - 改进解法 题目:给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复 ...

  4. Changing the Output Path in your Web Applications is a bad idea

    http://lnbogen.com/2006/09/20/changing-the-output-path-in-your-web-applications-is-a-bad-idea/ Let’s ...

  5. 编码格式(UTF-8 与 ANSI)各种编码解码(encode、decode)

    Windows:默认为 ANSI,记事本程序另存为处,可以设置其他编码格式: Ubuntu:默认为 UTF-8 1. ANSI ANSI 编码表示英文字符时用一个字节,表示中文用两个或四个字节 -- ...

  6. 杂项-java:ElasticSearch

    ylbtech-杂项-Java:ElasticSearch 1.返回顶部 1. ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTf ...

  7. springmvc的jar包

     <!-- spring框架的的组件构成(springFramework)--> 一.核心部分Core Container 1.1 spring-core,spring-beans 提供控 ...

  8. docker部署gitlab服务

    docker run -d -p : -p : -p : \ --name gitlab --restart always \ --volume /home/xxx/dockerData/gitlab ...

  9. codevs1486愚蠢的矿工(树形dp)

    1486 愚蠢的矿工  时间限制: 1 s  空间限制: 128000 KB     题目描述 Description Stupid 家族得知在HYC家的后花园里的中央花坛处,向北走3步,向西走3步, ...

  10. [Apple开发者帐户帮助]九、参考(3)支持的功能(iOS)

    iOS应用程序可用的功能取决于您的程序成员身份. 能力 ADP 企业 Apple开发者 访问Wifi信息   应用程序组 Apple Pay     相关域名   自动填充凭据提供程序   背景模式 ...