inspect
chrome里右键,选中inspect, 可以查看network,all,运行的时候可以具体看哪些request,比如get, post之类的,找到post的url
requests
import requests
files = {'file': open('report.xls', 'rb')}
data = {"key": "value", }
# post的时候用data
response = requests.post(url, files=files, data=data)
# get的时候用params
response = requests.get(url, files=files, params=data)
response.text
也可以用session
s = requests.Session()
response = s.post(url, files=files, data=data)
response.text
httpx
pip install httpx
import httpx
files = {'file': open('report.xls', 'rb')}
data = {"key": "value", }
# post的时候用data
response=httpx.post(url, files=files, data=data)
# get的时候用params
response=httpx.get(url, params=data)
# 用client,和session类似
with httpx.Client() as client:
response = client.post(url, files=files, data=data)
response.text
response.status_code
selenium
针对jupyter notebook的安装
pip install 'google-colab-selenium[undetected]'
如果不在colab里,需要
import os
os.environ['COLAB_GPU'] = '1'
用法
driver = gcs.UndetectedChrome()
url = ...
driver.get(url) # 进入网页
# 上传文件
file_input = driver.find_element(By.NAME, "PDBfile")
file_input.send_keys(str(path))
# 输入key value
driver.find_element(By.NAME, "key").clear()
driver.find_element(By.NAME, "key").send_keys("value")
# 点击提交
submit_button = driver.find_element(By.XPATH, '//input[@type="submit"]')
submit_button.click()
# 等待结果
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.TAG_NAME, "pre")))
# 提取结果
response_text = driver.page_source
# optional,如果需要回到原来的页面,或者在一个loop里
driver.get(url)
# 最后,quit driver
driver.quit()