python爬取拉勾网公司信息(您操作太频繁,请稍后访问)

article/2025/7/11 7:00:38

最近爬取拉勾网上的公司信息碰到了很多问题,但是都一一解决了。作为一个招聘网站,他的反爬措施做的还是很好的。

为了调查招聘网站上有多少公司,以及公司信息,并把公司信息存入MongoDB数据库中。

先上运行成功代码:

import requests 
import json,time,random
import pymongo
from lxml import etree    #导入需要用到的库文件client=pymongo.MongoClient('localhost',27017)
test=client['info_company']
lagou=test['lagou']        #连接数据库def gongsi_info(url):  #定义获取公司信息的函数for pn in range(2,31):params={'first':'false','pn':str(pn),'sortField':'0','havemark':'0'}                  #post请求参数try:with open('已下载页面.txt','r',)as f:  #如果存在该文件,就打开并读取内容,否则就创建该文件t=f.readlines()if str(pn)+'\n' in t:print('第'+str(pn)+'页已经爬取过了')else:    urls='https://www.lagou.com/gongsi/'s = requests.Session()s.get(urls, headers=headers, timeout=3)  # 请求首页获取cookiescookie = s.cookies              # 为此次获取的cookiesprint(cookie)response = s.post(url, data=params, headers=headers, cookies=cookie, timeout=5)  # 获取此次文本
#                time.sleep(3)response.encoding = response.apparent_encodingjson_data = json.loads(response.text)print(json_data['pageNo'])print(json_data['totalCount'])results=json_data['result']for result in results:infos={'公司简称':result['companyShortName'],'公司城市':result['city'],'公司全名':result['companyFullName'],'公司特色':result['companyFeatures'] if 'companyFeatures' in result else '','专注行业':result['industryField'],'公司规模':result['companySize'],'融资阶段':result['financeStage'],'面试评价数':result['interviewRemarkNum'],'在招职位':result['positionNum'],'简历处理率':result['processRate']}lagou.insert_one(infos)  #将数据插入数据库ti=10+random.random()   #设置间隔时间,防止被服务器屏蔽time.sleep(ti)with open('已下载页面.txt','a+')as f:  #将已经下载过的页面保存在txt文件中f.write(str(pn)+'\n')f.close()except requests.exceptions.ConnectionError:pass
if __name__=='__main__':url='https://www.lagou.com/gongsi/0-0-0-0.json'headers = {'Accept': 'application/json, text/javascript, */*; q=0.01','Referer': 'https://www.lagou.com/gongsi/','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'}gongsi_info(url)print('finished!!')

拉勾网结合了异步加载技术和提交表单,通过逆向工程爬取公司信息。

一开始的思路是:拉勾网在登录后才能拿到数据,因此需要在headers中带上cookie模拟登陆。结果发现在浏览器端能获得数据,但是程序一运行就返回:

'status': False, 'msg': '您操作太频繁,请稍后再访问', 'clientIp': '1120.229.134.196', 'state': 2402}

去网上又找了类似问题的解决方法,觉得应该是post表单少了参数导致的,因此我把f12中看到的headers参数全部带上,接着尝试运行程序,结果还是一样。

直到看到一篇文章说cookie的问题,上面说到cookie时间戳的问题,于是我去拉勾网看了一下发现这个:

这说明cookie中带有时间戳就是问题所在:一次性,在开发者工具中复制的cookie不能重复使用(其他网站的可以)。直到问题所在,接下来只要解决cookie问题就可以了。

这几行代码就解决了这个问题。解决灵感来自于博客,发现每次的cookie都不一样,至于更深层次的原因,暂不清楚,等后面接触服务器再来更新。


http://chatgpt.dhexx.cn/article/1UDFdCq1.shtml

相关文章

2022年爬取拉勾网详情页面地址信息

众所周知,拉勾网的反爬机制一直做的很好,前些年还可以通过找到网页源代码找到岗位详情页面的地址,而现在拉勾网的详情页面地址直接没了,这就很奇怪,那么鼠标点击他又是如何跳转到别的页面 点开源代码中,每一…

django+拉勾网招聘数据可视化

django拉勾网招聘数据可视化,此系统有详细的录屏,下面只是部门截图,需要看完整录屏联系博主 系统开发语言python,框架为django,数据库mysql,分为爬虫和可视化分析

Python爬虫实战:爬取拉勾网并对其进行数据分析

###整体的 思路 是采用 selenium 模拟浏览器的行为,具体的步骤如下: 初始化爬取数据,这里分为两个部分:一是爬取网页数据,二是进行翻页操作保存数据,将数据保存到文件中数据可视化 ###整体的 代码结构 如…

什么你还不知道招聘信息,小唐来教你——最新2021爬取拉勾网招聘信息(二)

文章目录 前言一、准备我们的库二、数据清洗三、核密度图及词云制作四、完整代码五、扩展 上一篇:什么你还不知道招聘信息,小唐来教你——最新2021爬取拉勾网招聘信息(一) 下一篇:没有拉! 前言 既然我们上…

No.4 拉勾网职位搜索信息爬取

一、简介 网址:https://www.lagou.com/jobs/list_/p-city_0?&clfalse&fromSearchtrue&labelWords&suginput 效果:信息 使用框架:requests 难度系数:✩✩✩ 二、教程 今天我们要为我们的工作写爬虫&#xf…

什么你还不知道招聘信息,小唐来教你——最新2021爬取拉勾网招聘信息(一)

文章目录 前言一、准备我们的库二、分析分析三、 代码四、数据展示小唐的心路历程 上一篇:没有啦! 下一篇:什么你还不知道招聘信息,小唐来教你——最新2021爬取拉勾网招聘信息(二) 前言 有是小唐的数据分析…

拉勾网的反爬介绍和解决方法(更新时间:2019/2/20)

拉勾网的反爬介绍和解决方法(更新时间:2019/2/20) 目录直达: 文章目录 拉勾网的反爬介绍和解决方法(更新时间:2019/2/20)1. 前言2. 简述3. 反爬介绍3.1、对于职位的详情页和公司的详情页的反爬…

应对反爬如何爬取拉勾网信息(非常详细)

目录 前期准备请求头Cookies问题手动提取Cookies和自动Cookies相结合自动提取Cookies实现 手动提取Cookies实现 页面分析代码实现 前期准备 我们知道百度其实就是一个爬虫,但是对方的服务器是没有对百度进行反爬的,所以为了防止对方服务器的反爬&#x…

【Python】模拟登陆并抓取拉勾网信息(selenium+phantomjs)

环境 python3.5pip install seleniumphantomjs-2.1.1pip install pyquery 代码 # -*- coding:utf-8 -*-# 防止print中文出错 import time import sys import io sys.stdout io.TextIOWrapper(sys.stdout.buffer, encodinggb18030)from pyquery import PyQuery as pq from se…

Python爬虫实战,requests模块,Python实现拉勾网求职信息数据分析与可视化

前言 利用requests爬取拉勾网求职信息数据分析与可视化,废话不多说。 让我们愉快地开始吧~ 开发工具 **Python版本:**3.6.4 相关模块: requests模块; re模块; os模块 jieba模块; pandas模块 num…

爬虫学习之17:爬取拉勾网网招聘信息(异步加载+Cookie模拟登陆)

很多网站需要通过提交表单来进行登陆或相应的操作,可以用requests库的POST方法,通过观测表单源代码和逆向工程来填写表单获取网页信息。本代码以获取拉勾网Python相关招聘职位为例作为练习。打开拉钩网,F12进入浏览器开发者工具,可…

python成功爬取拉勾网——初识反爬(一个小白真实的爬取路程,内容有点小多)

python成功爬取拉勾网(一个小白的心里路程) 最开始想爬取拉钩是因为半年前上python实验课的时候,老师给了两个任务,一个时爬取糗百的笑话内容,另一个时爬取拉勾网的职位信息,当时因为课时紧张的缘故&#…

爬虫实例二:爬取拉勾网招聘信息

爬虫实例二:爬取拉勾网招聘信息 如果是第一次看本教程的同学,可以先从一开始: 爬虫实例一:爬取豆瓣影评 欢迎关注微信公众号:极简XksA 微信账号:xksnh888 转载请先联系微信号:zs820553471 …

python爬虫之爬取拉勾网

这次要爬取拉勾网,拉勾网的反爬做的还是很不错的啊,因为目标网站是Ajax交互的我一开始是直接分析json接口来爬取的,但是真的很麻烦,请求头一旦出点问题就给识别出来了后续我就改了一下方法用selenium来模拟浏览器去获取 招聘求职…

爬虫练习六:爬取拉勾招聘信息

1. 明确需求 1. 初学爬虫时,看着各路大佬以拉勾网为案例进行爬虫讲解,自己也这样尝试。结果因为个人水平实在太低,很快就触发反爬虫机制,甚至连个人的账号都被封禁。所以这次想要重新挑战一下,爬取拉勾展示的招聘数据。…

用接口登录拉勾网

前段时间一直忙于公司项目的测试工作导致一周多没有撸代码,所以今天通过悠悠是博客学习了一下如何让用接口登录拉勾网 下面介绍一下吧!分享下经验以及心得,,虽然我知道也没什么人会看! 首先呢要先登录拉钩网的网站&am…

拉勾网登录问题

拉钩登录问题,在参考别人的博客后,解决啦 class lagouSpider(CrawlSpider):name lagouallowed_domains [www.lagou.com]start_urls [https://www.lagou.com/]agent "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/" \"537.36 (…

selenium实例登陆拉勾网 外加手动验证验证码

selenium模拟登陆拉钩网 from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC import os, json, time from urllib import parse from lxml import etree from fake_…

python -- 拉勾网爬虫模拟登录

入门爬虫一段时间,最近在做一个拉勾网的数据爬虫分析,项目也快接近尾声了,于是抽个时间写一下这个项目中遇到的一些问题。 目前拉勾网的反爬虫机制还是可以的,一开始用scrapy shell 分析拉勾网,发现拉勾网要校验usera…

基于Python的拉勾网的模拟登录获取cookie

lagou_login 拉勾网的模拟登录获取cookie,为爬虫做准备, 喜欢的点个赞,谢谢 入门爬虫一段时间,最近在做一个拉勾网的数据爬虫分析,项目也快接近尾声了,于是抽个时间写一下这个项目中遇到的一些问题。 目前拉勾网的反…