前言:图灵第三题就是对用户浏览器调试检测,检测鼠标右击打开控制台,检测键盘按键ctrl+shift+i,从浏览器设置打开开发者工具也不行,应该是有浏览器宽高检测的,所以我们保证浏览器页面宽高不变即可。
- 你如果想右击打开控制台,就会:
- 你如果ctrl+shift+i或者从浏览器设置打开,那么就会:
- 解决方案:弹出控制台,使得控制台和该页面不在同一个页面上。
这样就能抓包了,此题也就轻松解决了,当然你也可以用抓包工具抓包,比如fd。
代码如下:
import asyncio, aiohttpclass AsyncSpider(object):def __init__(self):self.url = 'https://www.mashangpa.com/api/problem-detail/3/data/'self.headers = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36'}self.cookies = {'sessionid':'5jcme0ghsrunwzrdonvwiwpm87nquvxx'}self.semaphore = asyncio.Semaphore(3)async def fetch_page(self, session, page):params = {'page': page}async with self.semaphore:async with session.get(self.url, headers = self.headers, cookies = self.cookies, params = params, timeout = 10) as res:data = await res.json()return data.get('current_array', [])async def parse_all_pages(self):total_sum = 0async with aiohttp.ClientSession() as session:tasks = [self.fetch_page(session, page) for page in range(1, 21)]results = await asyncio.gather(*tasks)for array in results:if array:total_sum += sum(array)print(total_sum)if __name__ == '__main__':spider = AsyncSpider()asyncio.run(spider.parse_all_pages())