DressionPage是一个很好的一个python自动化工具,他将chrome driver模式和 模拟请求二合一,并且可以想和切换。
driver模式是官方文档介绍,是自己重新开发底层,模拟请求使用的是requests和beautifulsoup相结合的方式。
一下代码是使用DrissionPage,模拟登录gitee以及模拟获取数据的code:
# encoding=utf-8
from DrissionPage import WebPage
page = WebPage()
account = ''
password = ''
page.get('https://gitee.com/')
page.ele('xpath://*[@id="HeaderColorful_gitee-header--colorful__1Wj07"]/div/nav[2]/ul/li[2]/a').click()
page.ele('xpath://*[@id="user_login"]').input(account)
page.ele('xpath://*[@id="user_password"]').input(password)
page.ele('xpath://*[@id="new_user"]/div/div/div/div[4]/input').click()
page.change_mode()
page.post('https://gitee.com/graphql',data=data)
data = page._make_response('https://gitee.com/graphql',mode='post')
print(data,data[0].request.headers)
print(dir(data[0]))
print(data[0].text)
其中make_response和request还是有些不一样的,这里需要调用,_make_response函数,并导入url地址和对应的请求方式,不然是获取不到对应的response信息。