1.requests的post请求
import requests
import re
headers={
'User-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.80 Safari/537.36'
}
response=requests.get(url='https://github.com/login',headers=headers)
print(response.text)
把login页返回的cookies信息转换成字典
login_cookies=response.cookies.get_dict()
authenticity_token=re.findall(' name="authenticity_token" value="(.*?)"',response.text,re.S)[0]
print(authenticity_token)
#拼接请求头信息
headers2={
'Referer':'https://github.com/login',
'User-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.80 Safari/537.36'
}
#拼接请求体信息
form_data={
'commit':'Sign in',
"utf-8":"✓",
"authenticity_token":authenticity_token,
"login":"852653835",
"password":"******",
"webauthn-support":"supported"
}
# 往session发送请求,携带请求头、请求体、login页的cookies信息
response2=requests.post(url='https://github.com/session',data=form_data,headers=headers2,cookies=login_cookies)
print(response2.status_code)
with open('github.html','w',encoding='utf-8')as f:
f.write(response2.text)
#响应response
import requests
headers = {
'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.76 Mobile Safari/537.36',
}
#
response = requests.get('https://www.github.com', headers=headers)
print(response.status_code) # 获取响应状态码
print(response.url) # 获取url地址
print(response.text) # 获取文本
print(response.content) # 获取二进制流
print(response.headers) # 获取页面请求头信息
print(response.history) # 上一次跳转的地址
print(response.cookies) # # 获取cookies信息
print(response.cookies.get_dict()) # 获取cookies信息转换成字典
print(response.cookies.items()) # 获取cookies信息转换成字典
print(response.encoding) # 字符编码
print(response.elapsed) # 访问时间
2.requests的高级用法
1 # https=http+ssl
2 import requests
3 #王音频地址发送get请求
4 url='http://hc.yinyuetai.com/uploads/videos/common/3B7201685F78BF2954FEEB32CB6EBD82.mp4'
5 response=requests.get(url,stream=True) #stream=True把content设置为一个迭代器对象
6 print(response.content)
7 with open('music.mp4','wb')as f:
8 for content in response.iter_content():
9 f.write(content)
3.selenium模块
1 from selenium import webdriver # 用来驱动浏览器的
2 from selenium.webdriver import ActionChains # 破解滑动验证码的时候用的 可以拖动图片
3 from selenium.webdriver.common.by import By # 按照什么方式查找,By.ID,By.CSS_SELECTOR,By.ClassName
4 from selenium.webdriver.common.keys import Keys # 键盘按键操作
5 from selenium.webdriver.support import expected_conditions as EC # 和下面WebDriverWait一起用的
6 from selenium.webdriver.support.wait import WebDriverWait # 等待页面加载某些元素
7 #
8 import time
9 # 通过谷歌浏览器驱动打谷歌浏览器
10 # 1、
11 webdriver.Chrome(r'C:\Users\85265\Downloads\chromedriver.exe')
12 chrome=webdriver.Chrome(r'C:\Users\85265\Downloads\chromedriver.exe')
13 chrome.get('https://www.cnblogs.com/kermitjam')
14
15
16 #2、
17 chrome=webdriver.Chrome()
18 若try出现异常
19 try:
20 驱动一参数对象,驱动二等待时间
21 wait=WebDriverWait(chrome,10)
22 访问百度
23 chrome.get('https://www.baidu.com')
24 查找input输入窗
25 input_tag=wait.until(EC.presence_of_element_located(
26 此处可以写一个参数
27 (By.ID,'kw')))#没ID找class
28 搜索一拳超人
29 input_tag.send_keys('一拳超人')
30 按键盘回车键
31 input_tag.send_keys(Keys.ENTER)
32 time.sleep(3)
33 finally:
34 chrome.close()
35
36
37 from selenium import webdriver # 用来驱动浏览器的
38 from selenium.webdriver import ActionChains # 破解滑动验证码的时候用的 可以拖动图片
39 from selenium.webdriver.common.by import By # 按照什么方式查找,By.ID,By.CSS_SELECTOR,By.ClassName
40 from selenium.webdriver.common.keys import Keys # 键盘按键操作
41 from selenium.webdriver.support import expected_conditions as EC # 和下面WebDriverWait一起用的
42 from selenium.webdriver.support.wait import WebDriverWait # 等待页面加载某些元素
43 import time
44 通过谷歌浏览器驱动打开谷歌浏览器
45 1、
46 webdriver.Chrome(r'C:\Users\85265\Downloads\chromedriver.exe')
47 chrome=webdriver.Chrome(r'C:\Users\85265\Downloads\chromedriver.exe')
48 chrome.get('https://www.cnblogs.com/kermitjam')
49
50
51 #2、
52 chrome=webdriver.Chrome()
53 若try出现异常
54 try:
55 显示等待(等待某个元素加载),驱动一参数对象,驱动二等待时间
56 wait=WebDriverWait(chrome,10)
57 访问百度
58 chrome.get('https://www.jd.com')
59 查找input输入窗
60 input_tag=wait.until(EC.presence_of_element_located(
61 此处可以写一个参数
62 (By.ID,'key')))#没ID找class
63 搜索唐诗三百首
64 input_tag.send_keys('唐诗三百首')
65 根据class属性名查找标签
66 search_button=wait.until(EC.presence_of_element_located((By.CLASS_NAME,'button')))
67 search_button.click()
68 time.sleep(8)
69 finally:
70 chrome.close()
4.实例
1 from selenium import webdriver # 用来驱动浏览器的
2 from selenium.webdriver import ActionChains # 破解滑动验证码的时候用的 可以拖动图片
3 from selenium.webdriver.common.by import By # 按照什么方式查找,By.ID,By.CSS_SELECTOR
4 from selenium.webdriver.common.keys import Keys # 键盘按键操作
5 from selenium.webdriver.support import expected_conditions as EC # 和下面WebDriverWait一起用的
6 from selenium.webdriver.support.wait import WebDriverWait # 等待页面加载某些元素
7 from selenium import webdriver
8 import time
9 # 通过谷歌浏览器驱动打开谷歌浏览器
10 # 绝对路径有可能有.exe,有可能没有
11 # 驱动浏览器的一种方式
12 chrome=webdriver.Chrome(r'D:\360安全浏览器下载\chromedriver_win32\chromedriver')
13 # 驱动浏览器的另一种方式,将chromedriver.exe放入到python解释器的scipt文件中,;之后还要进行环境变量的配置。
14 # 往博客园主页发送get请求
15 try:
16 # chrome.get('https://www.cnblogs.com/')
17 # 访问百度
18 # chrome是一个驱动对象,里面包含其他函数
19 # 参数1:驱动对象。参数2:等待
20 wait=WebDriverWait(chrome,10)
21 chrome.get('https://www.jd.com/')
22 # 查找input输入框
23 #!!!!!!注意!!!!!EC.presence_of_element_located((By.ID,"kw"))里面是写的元组,
24 #参数1.查找属性的方式,参数2:属性的名字
25 input_tag=wait.until(EC.presence_of_element_located((By.ID,"key")))# kw是id的属性
26 # 3.搜索一拳超人
27 input_tag.send_keys('唐诗三百首')
28 # 4.按键盘回车键
29 search_button=wait.until(EC.presence_of_element_located((By.CLASS_NAME,"button")))
30 search_button.click()
31 time.sleep(20)
32 # 无论发生什么异常都会关闭浏览器
33 finally:
34 # 关闭浏览器
35 chrome.close()
5.作业

1 from selenium import webdriver
2 import time
3 driver=webdriver.Chrome()
4 driver.maximize_window()
5 try:
6 driver.get('https://dig.chouti.com/')
7 driver.implicitly_wait(10)
8 time.sleep(5)
9 login_btn=driver.find_element_by_id('login_btn')
10 login_btn.click()
11 time.sleep(2)
12 phone=driver.find_element_by_class_name('login-phone')
13 phone.send_keys('216635131365')
14
15 pwd=driver.find_element_by_class_name('pwd-password-input')
16 pwd.send_keys('ddgsgddg')
17
18 login_submit=driver.find_element_by_class_name('btn-large')
19 login_submit.click()
20
21 time.sleep(20)
22
23 except Exception as e:
24 print(e)
25
26 finally:
27 driver.close()
来源:https://www.cnblogs.com/lee-L/p/11053870.html
