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的高级用法

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()

View Code

转载于:https://www.cnblogs.com/lee-L/p/11053870.html

Python Day05相关推荐

  1. python.day05

    一 字典 定义:dict, 以{},表示.每一项用逗号隔开,内部元素用key:value的形式来保存数据.例如 {"jj":"林俊杰","jay':周 ...

  2. python爬虫实战-爬取视频网站下载视频至本地(selenium)

    #python爬虫实战-爬取视频网站下载视频至本地(selenium) import requests from lxml import etree import json from selenium ...

  3. 铁乐学Python_day05-字典dict

    1.[字典dict] Python内置了字典:dict的支持,dict全称dictionary, 在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度. 字典和列表直观上 ...

  4. Python基础day05 作业解析【10道 函数作业题】

    视频.源码.课件.软件.笔记:超全面Python基础入门教程[十天课程]博客笔记汇总表[黑马程序员] Python基础day04[函数(定义与调用.文档说明.传参函数.全局变量.返回值.嵌套调用)] ...

  5. Python基础day05【函数应用:学生管理系统、拆包、今日总结】

    视频.源码.课件.软件.笔记:超全面Python基础入门教程[十天课程]博客笔记汇总表[黑马程序员] Python基础day05[函数(函数传参的两种形式.函数形参).拆包.引用.可变与不可变类型.引 ...

  6. Python基础day05【函数(局部变量、全局变量、多函数执行流程、函数返回值、函数参数)、拆包、引用、可变与不可变类型、函数注意事项】

    视频.源码.课件.软件.笔记:超全面Python基础入门教程[十天课程]博客笔记汇总表[黑马程序员] Python基础day05[函数(函数传参的两种形式.函数形参).拆包.引用.可变与不可变类型.引 ...

  7. Python菜鸟入门:day05列表

    写在前面: 此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 传送门: day01基础知识 day02知识分类 day03 ...

  8. 轩小陌的Python笔记-day05 数据类型

    day05 数据类型(上) 接下来的3篇的内容都是讲解数据类型的知识点,常见的数据类型: int,整数类型(整型) bool,布尔类型 str,字符串类型 list,列表类型 tuple,元组类型 d ...

  9. 廖雪峰Python教程 实战day05

    廖雪峰Python教程 实战day05 1. Web程序工作流程 本文部分文字内容.图片摘自<Flask Web开发实战:入门.进阶与原理解析>,作者李辉. 在编写自己的Web框架之前,首 ...

  10. Python 在线多人游戏开发教程 Day05#石头剪刀布游戏

    Python 在线多人游戏开发教程 Day01#做一个可以移动的方块 Python 在线多人游戏开发教程 Day02#做一个server 和 network Python 在线多人游戏开发教程 Day ...

最新文章

  1. 取java.sql.date日期_JAVA 处理时间 - java.sql.Date、java.util.Date与数据库中的Date字段的转换方法[转]...
  2. 智慧少年队显示服务器异常,六大智慧少年是什么梗,六大智慧少年其它五个
  3. 8.依赖的传递、排除、冲突
  4. 零基础逆向工程28_Win32_02_事件_消息_消息处理函数
  5. 递归 求一个数的阶乘
  6. ubuntu16.04安装lua环境
  7. 深度学习笔记(32) 目标定位
  8. Docker学习笔记_安装和使用Zookeeper
  9. spring定时任务执行两次的原因与解决方法
  10. 在 Azure 虚拟机上快速搭建 MongoDB 集群
  11. 开机直接进入键盘布局_Winodws10系统出现“选择键盘布局”界面如何解决
  12. 编写函数trans(str)实现字符串中数字转化为大写汉字。例如 “0123456789“转化为 “零壹贰叁肆伍陆柒捌玖“。
  13. 当我在浏览器输入 www.baiu.com 之后发生了什么
  14. linux内核函数 ffs,linux内核中的宏ffs(x)【转】
  15. socket编程基础知识
  16. 2021字节跳动校招秋招算法面试真题解题报告--leetcode19 删除链表的倒数第 n 个结点,内含7种语言答案
  17. 点击button没有反应
  18. 专访 | 外媒看FAST:刘慈欣说的黑暗森林法则成立吗
  19. vivado对mcs文件固化
  20. 删除下拉框只找23火星软件_下拉词删除就找23火星

热门文章

  1. 华为网吧服务器型号,网吧需要什么配置的服务器
  2. httpclient4 post提交请求乱码问题解决
  3. chromeos java安装_谷歌最新系统ChromeOS安装体验,酷!
  4. 计算机硬件仿真实验软件,计算机硬件实验虚拟仿真平台的设计
  5. java 切图_分布式切图服务——切图篇
  6. Proxyee-down – 百度网盘全平台满速下载神器,还带有IDM的全网嗅探功能
  7. SOA介绍--什么是SOA?[转载]
  8. 直播APP开发如何得到用户青睐?
  9. android设备当广告屏使用方法,Android手机与电视无线HDMI同屏器使用教程
  10. Access2016学习8