前情提要
爬过百度翻译的朋友们应该都知道:
百度翻译的 sign 参数破解需要一些逆向能力,已经有很多大神讲了,我就不重复了。破解 sign 后还可能遇到另一个问题:同一个 token 和 cookie 可翻译的次数有限,次数过多时会触发百度的反爬机制。 大规模调用的时候需要更多的 token 和 cookie 。
很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!??¤
QQ群:623406465
那么需求来了:我们需要一个 token 和 cookie 池。
发送请求的时候,User-Agent、cookie、token三个值缺一不可。
cookie中最重要的两个值是:BAIDUID、yjs_js_security_passport。
yjs_js_security_passport 的构造机制比较复杂,是由很多函数经过加密处理过的,逆向能力较弱的小伙伴只能缴枪投降。
换个思路,既然 User-Agent 不变,我们可以试试用 selenium 看能不能直接读取到 token 和 cookie。
开启浏览器
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import time
import requests
import re
#以下三行为无头模式运行,无头模式不开启浏览器,也就是在程序里面运行的
# chrome_options = Options()
# chrome_options.add_argument("--headless")
# browser = webdriver.Chrome(executable_path=(r'C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe'), options=chrome_options)
#以下一行为有头模式运行,开启浏览器,在程序外面运行的。
#executable_path请放自己的chromedriver.exe路径
browser = webdriver.Chrome(executable_path=(r'C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe'))
url = "https://fanyi.baidu.com"
browser.get(url)