【实战】用request爬取拉勾网职位信息

from urllib import request
import urllib
import ssl
import json

url = ‘https://www.lagou.com/jobs/positionAjax.json?needAddtionalResult=false‘
headers = {
    ‘User-Agent‘: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) "
                  "Chrome/75.0.3770.100 Safari/537.36",
    ‘Referer‘: "https://www.lagou.com/jobs/list_Python?labelWords=&fromSearch=true&suginput=",
    ‘Origin‘: "https://www.lagou.com",
    ‘Accept‘: "application/json, text/javascript, */*; q=0.01",
    ‘Content-Type‘: "application/x-www-form-urlencoded; charset=UTF-8",
    ‘Accept-Language‘: "zh-CN,zh;q=0.9",
    ‘Connection‘: "keep-alive",
    ‘Content-Length‘: "25",
    ‘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",
}
data = {
    ‘first‘: ‘true‘,
    ‘pn‘: 1,
    ‘kd‘: ‘Python‘
}
new_data = urllib.parse.urlencode(data)
req = request.Request(url, headers=headers, data=new_data.encode(‘utf-8‘), method=‘POST‘)
context = ssl._create_unverified_context()
res = request.urlopen(req, context=context, timeout=60)
res_json = json.loads(res.read())
print(res_json)
print(res_json[‘content‘][‘positionResult‘][‘result‘])
with open(‘/Users/mac/PycharmProjects/TEST/TEST/爬虫day/file/lago.txt‘, ‘w‘) as f:
    f.write(res_json)

# 出现请求太频繁的解决  伪造浏览器 完善请求头

避免请求太频繁 方法

import requests
import time
import json

def main():
    url_start = "https://www.lagou.com/jobs/list_python?city=%E6%88%90%E9%83%BD&cl=false&fromSearch=true&labelWords=&suginput="
    url_parse = "https://www.lagou.com/jobs/positionAjax.json?city=天津&needAddtionalResult=false"
    headers = {
       ‘Accept‘: ‘application/json, text/javascript, */*; q=0.01‘,
       ‘Referer‘: "https://www.lagou.com/jobs/list_Python?labelWords=&fromSearch=true&suginput=",
       ‘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‘     }
    for x in range(1, 5):
        data = {
             ‘first‘: ‘true‘,
             ‘pn‘: str(x),
             ‘kd‘: ‘Python‘
                }
        s = requests.Session()  # 创建一个session对象
        s.get(url_start, headers=headers, timeout=3)  # 用session对象发出get请求,请求首页获取cookies
        cookie = s.cookies  # 为此次获取的cookies
        response = s.post(url_parse, data=data, headers=headers, cookies=cookie, timeout=3)  # 获取此次文本
        time.sleep(5)
        response.encoding = response.apparent_encoding
        text = json.loads(response.text)
        info = text["content"]["positionResult"]["result"]
        print(info)

if __name__ == ‘__main__‘:
    main()

原文地址:https://www.cnblogs.com/wangyue0925/p/11083443.html

时间: 2024-11-03 05:50:19

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

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

本次以scrapy抓取拉勾网职位信息作为scrapy学习的一个实战演练 python版本:3.7.1 框架:scrapy(pip直接安装可能会报错,如果是vc++环境不满足,建议直接安装一个visual studio一劳永逸,如果报错缺少前置依赖,就先安装依赖) 本篇主要对scrapy生成爬虫项目做一个基本的介绍 tips:在任意目录打开cmd的方式可以使用下面这两种方式 shift + 右键打开cmd(window10的powershell你可以简单理解为cmd升级版) 在路径框直接输入cmd

python 爬虫2-正则表达式抓取拉勾网职位信息

import requestsimport re #正则表达式import time import pandas #保存成 CSV #header={'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0'}header = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:57.0) Gecko/2

Python爬取51job职位信息

# -*- coding: utf-8 -*- # @Time : 2018/3/1 16:38 # @Author : HT # @Email : [email protected] # @File : 51job.py # @Software: PyCharm import urllib import re import sys reload(sys) sys.setdefaultencoding('utf8') i = 0#统计爬取总条目 def url_input(url): get_h

爬取51job职位信息之编码问题

兴趣来潮,爬了下51job,但是遇到编码问题!以下是简单的一段代码 获取整个页面数据 # -*- coding:utf-8 -*- import requests import sysreload(sys)sys.setdefaultencoding('utf-8') def spider(url): session = requests.Session() html = session.get(url, headers=headers) return html url = 'http://ww

Python 爬取拉勾网python职位信息

今天的任务是爬取拉勾网的职位信息. 首先,我们进入拉勾网,然后在职位搜索栏搜索Python 的同时,打开控制面板F12,来查看网页构成. 在XHR里,可以清楚的看见Ajax请求,所以需要使用session模块来模拟浏览器的行为来操作. 源代码如下: import requests import json header = { 'Accept': 'application/json, text/javascript, */*; q=0.01', 'Referer': 'https://www.la

Python爬虫实战二之爬取百度贴吧帖子

大家好,上次我们实验了爬取了糗事百科的段子,那么这次我们来尝试一下爬取百度贴吧的帖子.与上一篇不同的是,这次我们需要用到文件的相关操作. 前言 亲爱的们,教程比较旧了,百度贴吧页面可能改版,可能代码不好使,八成是正则表达式那儿匹配不到了,请更改一下正则,当然最主要的还是帮助大家理解思路. 2016/12/2 本篇目标 1.对百度贴吧的任意帖子进行抓取 2.指定是否只抓取楼主发帖内容 3.将抓取到的内容分析并保存到文件 1.URL格式的确定 首先,我们先观察一下百度贴吧的任意一个帖子. 比如:ht

[Python学习] 简单爬取CSDN下载资源信息

这是一篇Python爬取CSDN下载资源信息的例子,主要是通过urllib2获取CSDN某个人所有资源的资源URL.资源名称.下载次数.分数等信息:写这篇文章的原因是我想获取自己的资源所有的评论信息,但是由于评论采用JS临时加载,所以这篇文章先简单介绍如何人工分析HTML页面爬取信息. 源代码 # coding=utf-8 import urllib import time import re import os #****************************************

转 Python爬虫实战二之爬取百度贴吧帖子

静觅 » Python爬虫实战二之爬取百度贴吧帖子 大家好,上次我们实验了爬取了糗事百科的段子,那么这次我们来尝试一下爬取百度贴吧的帖子.与上一篇不同的是,这次我们需要用到文件的相关操作. 本篇目标 1.对百度贴吧的任意帖子进行抓取 2.指定是否只抓取楼主发帖内容 3.将抓取到的内容分析并保存到文件

Python爬虫入门 | 爬取豆瓣电影信息

这是一个适用于小白的Python爬虫免费教学课程,只有7节,让零基础的你初步了解爬虫,跟着课程内容能自己爬取资源.看着文章,打开电脑动手实践,平均45分钟就能学完一节,如果你愿意,今天内你就可以迈入爬虫的大门啦~好啦,正式开始我们的第二节课<爬取豆瓣电影信息>吧!啦啦哩啦啦,都看黑板~1. 爬虫原理1.1 爬虫基本原理听了那么多的爬虫,到底什么是爬虫?爬虫又是如何工作的呢?我们先从"爬虫原理"说起.爬虫又称为网页蜘蛛,是一种程序或脚本.但重点在于:它能够按照一定的规则,自动