今天上课主要是request的一些用法,下面是笔记:

1.requests的post请求

# 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 requestsheaders = {'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的高级用法

# 2、requests高级用法
# https=http+ssl
import requests
#王音频地址发送get请求
url='http://hc.yinyuetai.com/uploads/videos/common/3B7201685F78BF2954FEEB32CB6EBD82.mp4'
response=requests.get(url,stream=True)  #stream=True把content设置为一个迭代器对象
print(response.content)
with open('music.mp4','wb')as f:for content in response.iter_content():f.write(content)

  3.selenium模块

'''
'''例1'''
from selenium import webdriver  # 用来驱动浏览器的
from selenium.webdriver import ActionChains  # 破解滑动验证码的时候用的 可以拖动图片
from selenium.webdriver.common.by import By  # 按照什么方式查找,By.ID,By.CSS_SELECTOR,By.ClassName
from selenium.webdriver.common.keys import Keys  # 键盘按键操作
from selenium.webdriver.support import expected_conditions as EC  # 和下面WebDriverWait一起用的
from selenium.webdriver.support.wait import WebDriverWait  # 等待页面加载某些元素
#
import time
# 通过谷歌浏览器驱动打谷歌浏览器
# 1、
webdriver.Chrome(r'C:\Users\85265\Downloads\chromedriver.exe')
chrome=webdriver.Chrome(r'C:\Users\85265\Downloads\chromedriver.exe')
chrome.get('https://www.cnblogs.com/kermitjam')#2、
chrome=webdriver.Chrome()
若try出现异常
try:驱动一参数对象,驱动二等待时间wait=WebDriverWait(chrome,10)访问百度chrome.get('https://www.baidu.com')查找input输入窗input_tag=wait.until(EC.presence_of_element_located(此处可以写一个参数(By.ID,'kw')))#没ID找class搜索一拳超人input_tag.send_keys('一拳超人')按键盘回车键input_tag.send_keys(Keys.ENTER)time.sleep(3)
finally:chrome.close()from selenium import webdriver  # 用来驱动浏览器的
from selenium.webdriver import ActionChains  # 破解滑动验证码的时候用的 可以拖动图片
from selenium.webdriver.common.by import By  # 按照什么方式查找,By.ID,By.CSS_SELECTOR,By.ClassName
from selenium.webdriver.common.keys import Keys  # 键盘按键操作
from selenium.webdriver.support import expected_conditions as EC  # 和下面WebDriverWait一起用的
from selenium.webdriver.support.wait import WebDriverWait  # 等待页面加载某些元素
import time
通过谷歌浏览器驱动打开谷歌浏览器
1、
webdriver.Chrome(r'C:\Users\85265\Downloads\chromedriver.exe')
chrome=webdriver.Chrome(r'C:\Users\85265\Downloads\chromedriver.exe')
chrome.get('https://www.cnblogs.com/kermitjam')#2、
chrome=webdriver.Chrome()
若try出现异常
try:显示等待(等待某个元素加载),驱动一参数对象,驱动二等待时间wait=WebDriverWait(chrome,10)访问百度chrome.get('https://www.jd.com')查找input输入窗input_tag=wait.until(EC.presence_of_element_located(此处可以写一个参数(By.ID,'key')))#没ID找class搜索唐诗三百首input_tag.send_keys('唐诗三百首')根据class属性名查找标签search_button=wait.until(EC.presence_of_element_located((By.CLASS_NAME,'button')))search_button.click()time.sleep(8)
finally:chrome.close()

  4.京东实例

# 标签中首选id
# 目的就是查找唯一的属性,来定位
from selenium import webdriver  # 用来驱动浏览器的
from selenium.webdriver import ActionChains  # 破解滑动验证码的时候用的 可以拖动图片
from selenium.webdriver.common.by import By  # 按照什么方式查找,By.ID,By.CSS_SELECTOR
from selenium.webdriver.common.keys import Keys  # 键盘按键操作
from selenium.webdriver.support import expected_conditions as EC  # 和下面WebDriverWait一起用的
from selenium.webdriver.support.wait import WebDriverWait  # 等待页面加载某些元素
from selenium import webdriver
import time
# 通过谷歌浏览器驱动打开谷歌浏览器
# 绝对路径有可能有.exe,有可能没有
# 驱动浏览器的一种方式
chrome=webdriver.Chrome(r'D:\360安全浏览器下载\chromedriver_win32\chromedriver')
# 驱动浏览器的另一种方式,将chromedriver.exe放入到python解释器的scipt文件中,;之后还要进行环境变量的配置。
# 往博客园主页发送get请求
try:# chrome.get('https://www.cnblogs.com/')# 访问百度# chrome是一个驱动对象,里面包含其他函数# 参数1:驱动对象。参数2:等待wait=WebDriverWait(chrome,10)chrome.get('https://www.jd.com/')# 查找input输入框#!!!!!!注意!!!!!EC.presence_of_element_located((By.ID,"kw"))里面是写的元组,#参数1.查找属性的方式,参数2:属性的名字input_tag=wait.until(EC.presence_of_element_located((By.ID,"key")))#  kw是id的属性# 3.搜索一拳超人input_tag.send_keys('唐诗三百首')# 4.按键盘回车键search_button=wait.until(EC.presence_of_element_located((By.CLASS_NAME,"button")))search_button.click()time.sleep(20)# 无论发生什么异常都会关闭浏览器
finally:# 关闭浏览器chrome.close()

  5.作业

from  selenium import webdriver
import time
driver=webdriver.Chrome()
driver.maximize_window()
try:driver.get('https://dig.chouti.com/')driver.implicitly_wait(10)time.sleep(5)login_btn=driver.find_element_by_id('login_btn')login_btn.click()time.sleep(2)phone=driver.find_element_by_class_name('login-phone')phone.send_keys('216635131365')pwd=driver.find_element_by_class_name('pwd-password-input')pwd.send_keys('ddgsgddg')login_submit=driver.find_element_by_class_name('btn-large')login_submit.click()time.sleep(20)except Exception as e:print(e)finally:driver.close()

  

转载于:https://www.cnblogs.com/jacob1998/p/11042784.html

python实训day5相关推荐

  1. 大学python实训总结-千锋Python实训总结 学好基础才能走的更远

    时间飞逝,不知不觉在千锋学习Python已经一个月了,在这不长不短的一个月时间感觉我以往的生活方式和学习方式完全被改变了,希望我能继续保持这样的求学心态和学习态度.下面这个Python实训总结就是我对 ...

  2. Python实训day14pm【Python网络爬虫综合大作业-参考解析】

    Python实训-15天-博客汇总表 题目:天气数据的爬取和统计 大作业题目思路引导:定时爬取每个地级市的实时天气状况.存入excel中.为每个城市生成html展示.历史excel文件以每日为单位归档 ...

  3. Python实训day14am【Python网络爬虫综合大作业-答辩】

    Python实训-15天-博客汇总表 实训总结: 由浅入深的了解了python语言应用: 编写了很多案例,完成了发作业,提升了编程思路和能力: 了解了行业现状,认识到企业对人才的要求,去除焦虑,对后续 ...

  4. Python实训day13am【Python网络爬虫综合大作业PPT】

    Python实训-15天-博客汇总表   今天上午大家抓紧时间继续完成实训报告和PPT,有问题我会在群里跟大家说明, 暂时不用上线直播了. 实训结束后,我会在博客上发布网络爬虫综合大作业题目及解析.

  5. Python实训day12pm【答辩要求、定时器】

    Python实训-15天-博客汇总表 目录 1.答辩安排 2.定时器 1.答辩安排 下午安排: 今天尽量地完成整个项目: 明天完成实训报告,制作小答辩PPT: 后天答辩. PPT要求: 时长5分钟左右 ...

  6. Python实训day12am【网络爬虫大作业简略解析:动态生成html页面、数据写入Excel】

    Python实训-15天-博客汇总表 目录 1.HTML页面设计 2.生成每个城市的HTML页面 2.1.HTML页面代码(weatherTemplate.html) 2.2.实例代码-动态生成htm ...

  7. Python实训day11pm【大作业简略解析】

    Python实训-15天-博客汇总表 目录 1.课堂笔记 2.群消息 3.代码 3.1.demo1 3.2.demo2 1.课堂笔记 大作业题目思路引导: 题目1:定时爬取每个地级市的实时天气状况.存 ...

  8. Python实训day11am【大作业思路梳理】

    Python实训-15天-博客汇总表 定时任务:定时任务框架APScheduler学习详解 - 小学弟- - 博客园

  9. Python实训day10pm【os模块-处理Excel统计学生观看直播时长】

    Python实训-15天-博客汇总表 学以致用,课堂练习:考勤目录中存放的是所有的考勤excel表格,从第1天~第9天,表中关键的信息就是,学生当天看了多久的直播. 要求,利用所学知识,读取每个exc ...

最新文章

  1. 使用ROW_NUMBER 和partition by 解决报表中的查询问题
  2. 中美专利对比:2015年中国上升 美国首降
  3. go mongodb排序查询_【赵强老师】MongoDB中的索引(下)
  4. ORACLE的ASM
  5. cass软件yy命令_WIN10系统中的CASS字体问题
  6. python 匿名函数捕获变量值 (执行时的值)
  7. PHP_MySQL笔试题目一
  8. SAP Spartacus的double maintenance -使用Cherrypick进行维护工作
  9. windows配置samba客户端_如何搭建与Windows客户机结合使用的Samba文件服务器?
  10. din算法 代码_从啥也不会的小白,如何成为合格的算法工程师?
  11. mysql8.1改密码,mysql 8.0以上版本修改root密码的方法
  12. WebKit技术内幕(笔记)
  13. JAVA面向对象OOP→构造方法、this、访问修饰符、static、方法重载、JVM内存分配、GC垃圾回收、包、样例代码
  14. linux配置串口驱动程序,[Linux 驱动] -- Linux 驱动之串口(UART)
  15. 插入参考文献时,本该显示为[1],但显示了{Zhao,2017,#253},解决方法
  16. Unity-Behavior Designer详解
  17. 浅谈HTTP中Get、Post、Put与Delete的区别
  18. ADAM A METHOD FOR STOCHASTIC OPTIMIZATION
  19. Go语言并发安全与锁
  20. 推推客,拼多多优惠卷带你0投资月入过万

热门文章

  1. 计算机是的ch键他的功能是,从CH中文(中国)输入法转到智能ABC输入法.快捷键是哪个?...
  2. sqoop2 mysql导入hdfs_Sqoop2入门之导入关系型数据库数据到HDFS上(sqoop2-1.99.4版本)
  3. 服务器查内存型号,服务器怎样查内存型号
  4. linux怎么和windows互访,Linux和Windows操作系统远程互访的方法
  5. 23、90秒快速“读懂”STP(生成树)工作原理
  6. 围绕LEADS理念以开发者为中心,华为HDG伴你梦飞扬!(转载)
  7. 大项目微服务架构设计
  8. java 优势论文_【是时候升级java11了】 jdk11优势和jdk选择
  9. pwm波程序如何实现_【优秀成果】如何做好算法与程序实现教学的知识储备
  10. linux查看java编译版本,升级linux系统中的java版本到1.8