12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- # -*- coding: utf-8 -*-
- """
- Created on 2024-12-25
- ---------
- @summary:
- ---------
- @author: Dzr
- """
- import execjs
- import requests
- import json
- def ctx():
- with open('./zgsyzbtbw_pm.js', 'r', encoding='utf-8') as fr:
- ex_js = fr.read()
- return execjs.compile(ex_js)
- def get_logo(t, proxies=False):
- headers = {
- "Accept": "application/json, text/plain, */*",
- "Accept-Language": "zh-CN,zh;q=0.9",
- "Cache-Control": "no-cache",
- "Connection": "keep-alive",
- "MACHINE_CODE": t,
- "Pragma": "no-cache",
- "Referer": "https://www.cnpcbidding.com/",
- "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",
- }
- url = "https://www.cnpcbidding.com/cms/css/bj.css"
- res = requests.get(url, headers=headers, proxies=proxies, timeout=20)
- return res.content.decode()
- def parse_item_list(request, response):
- ret = response.content.decode()
- data = (json.loads(ret)['data'] if 'data' in ret else ret).replace('"', '')
- data_dict = ctx().call('decrypt', request.logo['logo2'], data)
- if data_dict is None:
- raise ValueError(f'列表页下载失败|{request.page}')
- return data_dict.get('data').get('records') or []
|