92 lines
3.3 KiB
Python
92 lines
3.3 KiB
Python
# -*- 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) |