steamdb cookie
2024-08-30 05:28:19
steamdb cookie
import requests, re, os, pymysql, time from lxml import etree from steamdb.YDM import YDMHttp # MYSQL_HOST = '192.168.107.229' # MYSQL_POST = 3306 # MYSQL_DATABASE = 'spider_app' # MYSQL_PASSWORD = '123456' # MYSQL_USER = 'root' MYSQL_HOST = '10.133.3.26' MYSQL_POST = 3306 MYSQL_DATABASE = 'spider_app' MYSQL_PASSWORD = 'root' MYSQL_USER = 'root' class steamdb(object): def __init__(self): requests.packages.urllib3.disable_warnings() self.headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.87 Safari/537.36", "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8", } self.post_headers = { "Content-Type": "application/x-www-form-urlencoded", "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.87 Safari/537.36", "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8", } self.data = {} self.post_url = '' self.session_url = 'https://captcha.su.baidu.com/session_cb?pub=377e4907e1a3b419708dbd00df9e8f79&callback=callback' self.image_url = 'https://captcha.su.baidu.com/image?session={}&pub=377e4907e1a3b419708dbd00df9e8f79' self.request = requests.Session() self.cookies = '' self.cfduid = '' self.cf_clearance = '' self.state = 0 self.db = pymysql.connect(host=MYSQL_HOST, port=MYSQL_POST, database=MYSQL_DATABASE, user=MYSQL_USER, password=MYSQL_PASSWORD, charset='utf8', autocommit=True) self.cursor = self.db.cursor() while True: if self.state: break self.steamdb_info() self.session_info() self.image_info() self.post_info() def steamdb_info(self): response = self.request.get(url='https://steamdb.info' + self.post_url, headers=self.headers, verify=False) cookies = requests.utils.dict_from_cookiejar(response.cookies) if '__cfduid' in cookies.keys(): self.cfduid = cookies['__cfduid'] print('steamdb_info:{}'.format(cookies)) etree_html = etree.HTML(response.content.decode('utf-8')) self.post_url = etree_html.xpath('//*[@id="challenge-form"]/@action')[0].strip() self.data['r'] = etree_html.xpath('//*[@id="challenge-form"]/input[1]/@value')[0].strip() self.data['id'] = etree_html.xpath('//*[@id="challenge-form"]/script/@data-ray')[0].strip() def session_info(self): html = self.request.get(url=self.session_url, headers=self.headers).content.decode('utf-8') self.data['captcha_challenge_field'] = re.findall(r'sessionstr":"(.+?)"}', html)[0] def image_info(self): path = os.path.dirname(os.path.abspath(__file__)) image_response = self.request.get(url=self.image_url.format(self.data['captcha_challenge_field']), headers=self.headers) filename = '{}/yzm.jpg'.format(path) with open(filename, 'wb') as f: f.write(image_response.content) print('------') codetype = 1000 # 超时时间,秒 timeout = 60 ydm = YDMHttp() result = ydm.run(filename, codetype, timeout) print(result) code = result[1] # code = input('请输入验证码:') print('code:{}'.format(code)) self.data['manual_captcha_challenge_field'] = code def post_info(self): response = self.request.post(url='https://steamdb.info' + self.post_url, headers=self.post_headers, data=self.data, verify=False) cookies = requests.utils.dict_from_cookiejar(response.cookies) print('post_info:{}'.format(cookies)) print(response.url) if cookies: if 'cf_clearance' in cookies.keys(): self.cf_clearance = cookies['cf_clearance'] self.cookies = '__cfduid={cfduid}; cf_clearance={cf_clearance}'.format(cfduid=self.cfduid, cf_clearance=self.cf_clearance) self.cursor.execute( 'UPDATE spider_cookies set cookies="{}", update_time="{}" WHERE platform="steamdb"'.format( self.cookies, time.strftime('%Y-%m-%d %X'))) print( 'UPDATE spider_cookies set cookies="{}", update_time="{}" WHERE platform="steamdb"'.format( self.cookies, time.strftime('%Y-%m-%d %X'))) self.state = 1 if __name__ == '__main__': steamdb()
最新文章
- 漫谈Nuclear Web组件化入门篇
- 使用USRP探索无线世界 Part 1:USRP从入门到追踪飞机飞行轨迹
- Web 项目下载图片简单处理方式
- Git: untrack a file in local repo only and keep it in the remote repo
- VMware 虚拟机网络 组网问题
- hdu 2425 Hiking Trip
- 负margin使用权威指南
- Atom远程连接服务器报错服务器版本和客户端版本不一致
- shiro权限控制方式
- z-index的理解 z-index 属性仅在节点的 position 属性为 relative, absolute 或者 fixed 时生效.
- adapter pattern
- 分布式存储 CentOS6.5虚拟机环境搭建FastDFS-5.0.5集群(转载-2)
- HDFS概述(3)————HDFS Federation
- Brave Game(裸的巴什博弈)
- 关于foo的一个面试题
- 一)surging 微服务框架使用系列之surging 的准备工作rabbitmq安装(转载 https://www.cnblogs.com/alangur/p/8339905.html)
- lua --- 函数的本质
- luoguP3768 简单的数学题
- np.array()
- golang 防知乎 中文验证码 源码
热门文章
- DENEBOLA (See3CAM_CX3RDK) - CX3 Reference Design
- 浅谈Java三大特性
- 【hibernate】自定义转换器
- WPF之图片处理系列
- gulp遇到错误:The following tasks did not complete: default Did you forget to signal async completion?
- CCF-CSP题解 201809-3 元素选择器
- JavaScript图形实例:七彩线团
- Linux远程目录挂载
- 北京国际机场T3行李运维平台开发记录
- Blog 须知