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 更 ...
随机推荐
- Orleans 配置端口的一些坑
Orleans的配置有点乱的 整理了下 .Configure<EndpointOptions>(options => { //这里的IP决定了是本机 还是内网 还是公网 option ...
- 使用iCamera 测试mt9d111 200w高分辨率摄像头小结
使用iCamera 测试mt9d111 200w高分辨率摄像头小结 先看下产品特性 安装效果 根据前面博客的经验,该摄像头,默认配置即有输出,分辨率为800*600,yuv 于是可以写 如果使用默认配 ...
- [vue]数据来源
1.组件data函数return的数据 作用域是组件本身 可以在模板template及计算属性computed和方法methods中使用 2.父传子,props数据 来自父级:可以是写死的,或者是来自 ...
- GitHub上传自己的项目
git下载地址:https://git-scm.com/downloads 1.下载git,直接下一步进行安装 2.安装完成后,双击git-bash.exe运行 3.cd进入你的项目路径 4.输入 g ...
- 一元建站-基于函数计算 + wordpress 构建 serverless 网站
前言 本文旨在通过 快速部署一个 wordpress 网站到阿里云函数计算平台 这个示例来展示 serverless web 新的开发模式, 包括 FUN 工具一键初始化 NAS, 同步网站到 NAS ...
- 3年Java开发都知道的Redis数据结构和通用命令
Redis的数据结构 Redis支持多种不同的数据结构,包括5种基础数据结构和几种比较复杂的数据,这些数据结构可以满足不同的应用场景. 五种基础数据结构 String:字符串,是构建其他数据结构的基础 ...
- PAT1057 Stack(树状数组+倍增)
目录 题目大意 题目分析 题目大意 要求维护一个栈,提供压栈.弹栈以及求栈内中位数的操作(当栈内元素\(n\)为偶数时,只是求第\(n/2\)个元素而非中间两数的平均值).最多操作100000次,压栈 ...
- Python自定义包引入【新手必学】
前言本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:sys_song python中的Module是比较重要的概念.常见的情 ...
- Nginx优化之一
一.Nginx安全优化 1.1:隐藏nginx版本信息 官方配置参数说明:http://nginx.org/en/docs/http/ngx_http_core_module.html#server_ ...
- SVN服务器和客户端的下载和安装
一.SVN服务器VisualSVN下载和安装 当前版本:4.1.3下载地址:https://www.visualsvn.com/server/download/下载下来的文件:VisualSVN-Se ...