中午耍谋音 看见一个老哥花了一年半的时间 将一个 地下水 换到了 流浪者 我以为用曲别针换别墅只是故事而已 没想到啊没想到
所有有了这个帖子因为 咱平常也会玩玩c**g 加上最近在学爬虫 所以突发奇想 能不能做一个程序 自动获取想买的饰品的价格
按照平常的来说 直接获取网页源码 然后找到价格 输出就好
但是发现 这个网站的数据是动态加载的 所以就想到了ajax 找了找 果然在一个json文件中找到了物品的价格 接着遇到一个问题就是 弄不下来 内个json文件
是我代码写的不对吗?还是怎么回事,请大佬们帮帮忙
这是获取json的代码
head = {
'user_agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
(KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36Mozilla/5.0 (Windows
NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/88.0.4324.150 Safari/537.36'
}
url = 'https://buff.163.com/api/market/goods/sell_order?
game=csgo&goods_id=769258&page_num=1&sort_by=price.asc&mode=&allow_tradable_cooldown=1&min_paintwear=0.15&max_paintwear=0.18&_=1617168547790'
page = '769258'
data = {
'game': 'csgo',
'goods_id': page,
'page_num': '1',
'sort_by': 'price.asc',
'mode':'',
'allow_tradable_cooldown': '1',
'min_paintwear': '0.15',
'max_paintwear': '0.18',
'_': '1617168547790'
}
json = requests.get(url=url, headers=head, data=data).json()
with open('./json.txt', 'w') as f:
f.write(json)
找那种不要登录的爬,或者说 他在你本地放了cookie?
首先感谢您的回答,请问不需要登陆的和需要登录的有什么区别的吗?
@木三136: 有没有那种情况,没有登录或者没有读到本地cookie的,直接返回 非法请求
@小草上飞飞: 您说的有道理 我试试登录之后
@木三136: 你可以直接用浏览器去请求这个json的url,看返回结果是什么
@小草上飞飞: 直接就是json文件的内容了,然后我加上了登录部分,返回了
{"code": "Login Required", "extra": null, "error": "\u8bf7\u5148\u767b\u5f55"}
这些
忘了说了,就是网站是 get 请求 而不是post请求![]
@小草上飞飞: 您说得对,的确是cookies的问题,但是我明明是在登录后又访问了一次,但是还是没有正确的返回,我手动添加了一下cookies,结果返回了正确的json,十分感谢
紧接着有了一个新的问题,请问有没有什么办法获得 Headers 中 cookies的值呢
你直接把headers里面复制进去,也可以用requests.session,每次可以获取新的cookies
@Python从入门到大神: 对,我目前hi打算手动复制的,另外向像是您说的,查到了可以用requests.session,但是应该怎么用呢,我直接对网址访问的话,需要登录,登录后,出了一点问题
先看代码:
session = requests.session()
response = session.post(url='https://buff.163.com/market/goods?goods_id=769258&from=market#tab=selling&min_paintwear=0.15&max_paintwear=0.18&page_num=1&sort_by=price.asc', headers=head)
page = '769258'
data = {
'game': 'csgo',
'goods_id': page,
'page_num': '1',
'sort_by': 'price.asc',
'mode': '',
'allow_tradable_cooldown': '1',
'min_paintwear': '0.15',
'max_paintwear': '0.18',
'': '1617168547790'
}
response = session.get(url=url, data=data, headers=head).json()session = requests.session()
response = session.post(url='https://buff.163.com/market/goods?goods_id=769258&from=market#tab=selling&min_paintwear=0.15&max_paintwear=0.18&page_num=1&sort_by=price.asc', headers=head)
page = '769258'
data = {
'game': 'csgo',
'goods_id': page,
'page_num': '1',
'sort_by': 'price.asc',
'mode': '',
'allow_tradable_cooldown': '1',
'min_paintwear': '0.15',
'max_paintwear': '0.18',
'': '1617168547790'
}
response = session.get(url=url, data=data, headers=head).json()
请看图片
先把登录处理好吧
感谢您的回答,登录已经不是问题了
老哥们,频率别太快啊,封了给
– 木三136 3年前