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 更 ...
随机推荐
- NAT(地址解析协议)
第七部分,也是本次更新的最后一部分,NAT(Network Address Translation),即地址解析协议.通俗理解,地址解析协议就是当一个单位只拥有一个公网ip地址,当内网中的主机想要访问 ...
- 【JS】313- 复习 回流和重绘
点击上方"前端自习课"关注,学习起来~ 原文地址:我不是陈纪庚 segmentfault.com/a/1190000017329980 回流和重绘可以说是每一个web开发者都经常听 ...
- 【Jackson】使用学习
Jackson学习 文档:http://tutorials.jenkov.com/java-json/index.html https://github.com/FasterXML/jackson/w ...
- 在 VSCode 中 Angular 的字符串报错的问题
使用 Angular 时,报错 [tslint] " should be ' 报错原因是因为 ESLint 的严格模式,限制了使用 ' ,甚至多一个空格都会报错. 我们只需要在 settin ...
- docker 常用命令 以及常见问题
常见命令 windos 在搜索框 输入 windows powershell,打开.然后输入以下命令#查看镜像列表 docker images ls #删除单个镜像 docker rmi image- ...
- Winform中实现仿XP系统的任务栏菜单效果(附代码下载)
场景 效果 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书.教程推送与免费下载. 实现 新建一个Fo ...
- 在CentOS 7 上使用Docker 运行.NetCore项目
安装Docker CentOS 7 安装 Docker 编写Dockerfile 右键项目->添加->Docker 支持 选择Linux 修改为如下: FROM mcr.microsoft ...
- linux 文件管理命令
一,文件查看more,less,head,tail,cat,tac 分屏查看文件内容 more:和man用法一样,但翻屏到尾部自动推出. less:和man用法一样. head:查看文件的前n行.n默 ...
- filezilla无法登陆ubuntu虚拟机
一般情况下,是新安装的虚拟机没有安装ssh造成的 进入虚拟机控制台,输入 sudo apt-get openssh-server 回车 等安装完成即可登陆.
- 报错解决 unable to unroll loop, loop does not appear to terminate in a timely manner (994 iterations) or unrolled loop is too large, use the [unroll(n)] attribute to force an exact higher number
在 Unity 写 Shader 的时候,在一个循环里面使用了 tex2D 函数,类似与下面这样: fixed2 center = fixed2(0.5,0.5); fixed2 uv = i.uv ...