steamdb cookie
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()
steamdb cookie的更多相关文章
- 超大 Cookie 拒绝服务攻击
有没有想过,如果网站的 Cookie 特别多特别大,会发生什么情况? 不多说,马上来试验一下: for (i = 0; i < 20; i++) document.cookie = i + '= ...
- IE10、IE11 User-Agent 导致的 ASP.Net 网站无法写入Cookie 问题
你是否遇到过当使用一个涉及到Cookie操作的网站或者管理系统时,IE 6.7.8.9下都跑的好好的,唯独到了IE10.11这些高版本浏览器就不行了?好吧,这个问题码农连续2天内遇到了2次.那么,我们 ...
- 解决cookie跨域访问
一.前言 随着项目模块越来越多,很多模块现在都是独立部署.模块之间的交流有时可能会通过cookie来完成.比如说门户和应用,分别部署在不同的机器或者web容器中,假如用户登陆之后会在浏览器客户端写入c ...
- jquery插件的用法之cookie 插件
一.使用cookie 插件 插件官方网站下载地址:http://plugins.jquery.com/cookie/ cookie 插件的用法比较简单,直接粘贴下面代码示例: //生成一个cookie ...
- 一个诡异的COOKIE问题
今天下午,发现本地的测试环境突然跑不动了,thinkphp直接跑到异常页面,按照正常的排错思路,直接看thinkphp的log 有一条 [ error ] [2]setcookie() expects ...
- [转载]Cookie/Session的机制与安全
Cookie和Session是为了在无状态的HTTP协议之上维护会话状态,使得服务器可以知道当前是和哪个客户在打交道.本文来详细讨论Cookie和Session的实现机制,以及其中涉及的安全问题. 因 ...
- jquery.cookie的使用
今天想到了要为自己的影像日记增加赞的功能,并且需要用到cookie. 记得原生的js操作cookie也不是很麻烦的,但似乎jquery更简单,不过相比原生js,需要额外引入2个文件,似乎又不是很好,但 ...
- 跨域问题,前端主动向后台发送cookie
跨域是什么? 从一个域名的网页访问另一个域名的资源,就会出现跨域.只要协议.端口.域名有一个不同就会出现跨域 例如: 1.协议不同 http://www.baidu.com:80 和 https:/ ...
- 【流量劫持】沉默中的狂怒 —— Cookie 大喷发
精简版:http://www.cnblogs.com/index-html/p/mitm-cookie-crack.html 前言 上一篇文章 讲解了如何借助前端技术,打造一个比 SSLStrip 更 ...
随机推荐
- JPEG算法解密
图片压缩有多重要,可能很多人可能并没有一个直观上的认识,举个例子,一张800X800大小的普通图片,如果未经压缩,大概在1.7MB左右,这个体积如果存放文本文件的话足够保存一部92万字的鸿篇巨著< ...
- .Net Core 3.0 以及其前版本编写自定义主机,以允许本机程式(转载)
像所有的托管代码一样,.NET Core 应用程序也由主机执行. 主机负责启动运行时(包括 JIT 和垃圾回收器等组件)和调用托管的入口点. 托管 .NET Core 运行时是高级方案,在大多数情况下 ...
- 当placeholder的字体大小跟input大小不一致时,实现placeholder垂直居中
如图:搜索和图标不是垂直居中着实难受 最终通过如下代码实现: input::-webkit-input-placeholder { transform: translate(0, 2px); }
- CSS-sprite(雪碧图、精灵图)
Css Sprite(优点) 减少图片的字节. 减少网页的http请求,从而大大的提高页面的性能. 解决了网页设计师在图片命名上的困扰,只需对一张集合的图片上命名就可以了,不需要对每一个小元素进行命名 ...
- 大数据项目2(Java8聚合操作)
前言:为很好的理解这些方法,你需要熟悉java8特性Lambda和方法引用的使用 一:简介 我们用集合的目的,往往不是简单的仅仅把数据保存哪里.而是要检索(遍历)或者去计算或统计....操作集合里面的 ...
- NodeJS2-5环境&调试----process(进程)
argv(参数相关的) /* argv argv0 execArgv execPath */ const { argv, argv0, execArgv, execPath } = process; ...
- SQL- SQL插入与更新删除
一 前言 经过之前的 [SQL]-SQL介绍, [SQL]- SQL检索阶段一, [SQL]-sql检索阶段二 的三篇文章你已经学会的sql的相关概念和如何查询数据库,这篇文章主要后续对数据库表的进入 ...
- 【Java必修课】图说Stream中的skip()和limit()方法及组合使用
1 简介 本文将讲解Java 8 Stream中的两个方法:skip()和limit().这两个方法是Stream很常用的,不仅各自会被高频使用,还可以组合出现,并能实现一些小功能,如subList和 ...
- 基于C#WPF框架——动画
WPF提供了一个更高级的模型,通过该模型可以只关注动画的定义,而不必考虑它们的渲染方式.这个模型基于依赖项属性基础架构.本质上,WPF动画只不过是在一段时间间隔内修染方式.这个模型基于依赖项属性基础架 ...
- React: 研究Redux的使用
一.简介 在上一篇文章中,大概讲了下Flux设计模式的使用,在末尾顺便提了一些基于Flux的脚本库,其中Redux已经毋庸置疑地成为了众多脚本库的翘楚之一.是的,Redux是基于Flux开发的,Red ...