1
huaerxiela 2018-08-31 14:29:35 +08:00
要看你这个 js 的情况吧,1,先用代码请求,得到 js 用 requests_html 执行 js 看看 cookie 能不能生成(有的不行),2,和你说的类似,puppeteer 访问获取 cookie,再加到代码中执行 ,3,看 js 生成 cookie 逻辑,是否方便用 py 或 node 代码进行模拟,这个可以解决你那个代理问题,避免使用同一个 cookie,4,方便说下哪个论坛的 js 吗,想研究下
|
2
bmos OP @huaerxiela www.19lou.com 是否有办法定位 cookie 是哪段 js 生成的?
|
3
huaerxiela 2018-08-31 15:00:01 +08:00
@bmos 找到生成逻辑了,我尝试写下,一会告诉你
|
4
yumenlong 2018-08-31 15:18:10 +08:00
每个代理使用不用的 cookie 试试。
|
5
huaerxiela 2018-08-31 16:01:45 +08:00 1
import requests
import re headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36', 'Host': 'www.19lou.com' } s = requests.session() s.headers = headers res = s.get('https://www.19lou.com/forum-269-thread-41401535624978493-1-1.html') redirect_url = res.url result_cookie = re.search(r'substr\|(.*?)\|365', res.text).group(1) result_cookie = result_cookie.split('|') s.cookies.update({result_cookie[0]: result_cookie[1]}) url = redirect_url.replace('https://www.19lou.com/safeRedirect.htm?', '') res = s.get(url) print(res.text) 你看看可以满足你要的要求了吗,本来我想用 execjs 执行返回的 js 的代码,但预期结果总是不符,我发现用 node 去执行,却总是正确的,后来我发现这个 cookie 的键值就存在于返回的 js 中,所以最后就直接提取了,我访问了两个链接,cookie 的键值总是不变,感觉这个 cookie 存在的意义不大啊,也可能还存在潜在的反爬 |
6
qybing 2018-09-01 13:16:30 +08:00
@huaerxiela 我也遇到这类的问题了,在爬大众点评商铺详细信息的时候,如果直接访问商铺信息详情页访问不到,必须先访问一次首页,在访问详情页就可以访问到,其中好像就是 COOkie 值被加密了,大佬可有解决方案,js 加密搞 2 天了,始终没有找到怎么生成的
|
7
zaaazaa 2018-09-01 14:17:00 +08:00
用 requests 模块呀,用 session 来 get 和 post,根本不用考虑 cookies 的问题
|
8
huaerxiela 2018-09-03 09:56:55 +08:00 1
@qybing 我也是菜鸡呀,你把关键步骤或主要代码贴下,我试试,不然我找着麻烦,还有别的事
|
9
bmos OP |