2026-01-24 17:07:34 +08:00

92 lines
3.3 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# -*- coding: UTF-8 -*-
import time
import uuid
import requests
import re
import json
import execjs
headers = {
'Accept': 'application/json, text/plain, */*',
'Accept-Language': 'zh',
'Cache-Control': 'no-cache',
'Connection': 'keep-alive',
'From-Domain': '51job_web',
'Pragma': 'no-cache',
'Referer': 'https://we.51job.com/pc/search?keyword=java&searchType=2&sortType=0&metro=',
'Sec-Fetch-Dest': 'empty',
'Sec-Fetch-Mode': 'cors',
'Sec-Fetch-Site': 'same-origin',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36',
'account-id': '',
'partner': '',
'property': '%7B%22partner%22%3A%22%22%2C%22webId%22%3A2%2C%22fromdomain%22%3A%2251job_web%22%2C%22frompageUrl%22%3A%22https%3A%2F%2Fwe.51job.com%2F%22%2C%22pageUrl%22%3A%22https%3A%2F%2Fwe.51job.com%2Fpc%2Fsearch%3Fkeyword%3Djava%26searchType%3D2%26sortType%3D0%26metro%3D%22%2C%22identityType%22%3A%22%22%2C%22userType%22%3A%22%22%2C%22isLogin%22%3A%22%E5%90%A6%22%2C%22accountid%22%3A%22%22%7D',
'sec-ch-ua': '"Not.A/Brand";v="8", "Chromium";v="114", "Google Chrome";v="114"',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-platform': '"Windows"',
'sign': '839932c059141791d8a003f0e6652e14facbf788a502df374fecf9c107d93b9e',
'user-token': '',
'uuid': '1687228791235576552',
}
params = {
'api_key': '51job',
'timestamp': '1769139097',
'keyword': '华为技术有限公司',
'searchType': '2',
'function': '',
'industry': '',
'jobArea': '000000',
'jobArea2': '',
'landmark': '',
'metro': '',
'salary': '',
'workYear': '',
'degree': '',
'companyType': '',
'companySize': '',
'jobType': '',
'issueDate': '',
'sortType': '0',
'pageNum': '1',
'requestId': '',
'pageSize': '20',
'source': '1',
'accountId': '',
'pageCode': 'sou|sou|soulb',
'scene':'7'
}
# 换成自己的代理或者不用单个ip应该有限制
proxies = {
"http":"http://xxx",
"https":"http://xxxx"
}
for i in range(1,2):
try:
# cookie = {'guid': 'd02dfbabd84858301947663946e1710f'}
session = requests.session()
print("%s次请求:" % i)
response = session.get('https://we.51job.com/api/job/search-pc', params=params,headers=headers,verify=False) # 关键禁用SSL验证)
print(response.text[:300])
arg1 = re.findall("arg1='(.*?)';",response.text,re.S)[0]
print('arg1--->',arg1)
guid = str(uuid.uuid4()).replace("-", "")
cookie = {'guid': str(guid)}
with open('04.js', 'r', encoding='utf-8') as f:
js = f.read()
acw_sc__v2 = execjs.compile(js).call('l', arg1)
print('acw_sc__v2-->',acw_sc__v2)
cookie.update({"acw_sc__v2": acw_sc__v2})
# cookie.update({"acw_sc__v3": "649257ebe376df87b3db6a94c1e5ad37f42f783b"})
response2 = session.get('https://we.51job.com/api/job/search-pc', params=params,headers=headers,cookies=cookie,verify=False) #
cookie.update(response2.cookies.get_dict())
response = session.get('https://we.51job.com/api/job/search-pc', params=params,headers=headers, cookies=cookie,verify=False)
print(response.text)
time.sleep(0.5)
except Exception as e:
print(e)