针对字节系的数据抓取涉及到msToken,X-Bogus,_signature,针对于小白都是抓瞎,需要前端页面debug状态找到加密3个参数的位置然后复制下面进行调试。本人操作均已失败告知。
给大家分享一下python selenium + mitmproxy的方式
mitmproxy的步骤:
官网地址进行安装并且启动:mitmproxy - an interactive HTTPS proxy
安装后,编写python api的接口:
py文件名称:addons.py
import mitmproxy.http
from mitmproxy import ctx
class Counter:
text = ''
def request(self, flow: mitmproxy.http.HTTPFlow):
ctx.log.info(flow.request.url)
#写自己的逻辑
def response(self, flow: mitmproxy.http.HTTPFlow):
ctx.log.info(flow.request.url)
# 写自己的逻辑,监听
addons = [
Counter()
]
启动方式:mitmweb -s addons.py
启动巨量算数 selenium.webdriver部分:
第一步创建浏览器对象:driver = webdriver.Chrome()
第二步get浏览器请求:driver.get("https://trendinsight.oceanengine.com")
没有登录状态的自动点击登录,在这里的后面可以加上休眠时间
time.sleep(5) 多少秒自己适当即可
第三步找到手机号码输入框使用CSS_SELECTOR的方式定位
然后send_keys填写自己的手机号码
time.sleep(5) 多少秒自己适当即可
第四步再用CSS_SELECTOR方式定位获取验证码是一个click()
time.sleep(5) 多少秒自己适当即可,这里容易出现图形的验证码自己手动选择这样的休眠时间稍微长一些
第五步手动输入验证码内容
第六步再用CSS_SELECTOR方式定位登录按钮的click()
第七步指定自己想要的查询的算数指数关键字
例如:driver.get("https://trendinsight.oceanengine.com/arithmetic-index/analysis?keyword=%E5%A5%B3%E8%A3%85&tab=crowd&appName=aweme")
这里基本上完事了,不过针对浏览器启动后再次启动查询的话,需要存储一个cookie
具体方法:driver.get_cookies()
针对mitmproxy和通过selenium.webdriver模拟登录完事了,
最核心的是mitmproxy启动的本地地址和端口:http://127.0.0.1:8080,设置当前电脑的代理
代理设置好后启动selenium.webdriver模拟登录的即可
需要源码的请联系微:cui750426