一. requests的基本语法
import requests
# requests:是python用来发送http请求的一个第三方库
1.发送请求获取响应
# requests.get(url) - 发送get请求
# requests.post(url) - 发送post请求
response = requests.get('https://www.baidu.com')
获取响应内容
1)状态码
code = response.status_code
print(code)
if code == 200:
print('请求成功,后续或许返回的数据')
else:
print('请求失败')
2)修改返回数据的编码方式(一般针对文本数据乱码的时候)
# 设置的值是网页源代码中charset的值
response.encoding = 'utf-8'
3)获取响应体(服务器返回的数据)
# a.获取文本数据(返回数据是网页源代码)
data = response.text
print(data)
# b.获取json数据(返回的数据是json格式的数据)
response.json()
# c.获取二进制数据(下载图片)
response.content
二. requests的应用
import requests
def get_json_data():
# 1.获取json数据
# 1)发送请求
response = requests.get('http://api.tianapi.com/txapi/ncovabroad/index?key=c9d408fefd8ed4081a9079d0d6165d43')
# 2)获取数据
if response.status_code == 200:
data = response.json()
print(data)
for x in data["newslist"]:
print(f'{x["provinceName"]}:{x["confirmedCount"]}')
else:
print('请求失败')
def get_bytes_data():
"""
下载图片
:return:
"""
# 发送请求
response = requests.get('https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=2866940675,2065857896&fm=26&gp=0.jpg')
# 获取二进制数据
if response.status_code == 200:
# print(response.content)
with open('img/0.jpg', 'wb') as f:
f.write(response.content)
else:
print('请求失败')
if __name__ == '__main__':
# get_json_data()
get_bytes_data()
三. requests的参数和header
1.参数
def argument():
"""
参数:发送请求的时候客户端发送给服务器的数据就是参数
传参的方式:
1.拼接url(GET) - 将参数以 '参数名=值'的形式 通过?拼接到url的后面,多个参数用&连接
例如:http://api.tianapi.com/txapi/ncovabroad/index?key=c9d408fefd8ed4081a9079d0d6165d43
2.给参数params赋值(GET/POST) - 将所有参数以键值对的形式创建一个字典,然后将字典赋给data
"""
# 方法一:
# url = 'http://api.tianapi.com/txapi/ncovabroad/index?key=c9d408fefd8ed4081a9079d0d6165d43'
# response = requests.get(url)
# 方法二:
url = 'http://api.tianapi.com/txapi/ncovabroad/index?key=c9d408fefd8ed4081a9079d0d6165d43'
arguments = {
'key': 'c9d408fefd8ed4081a9079d0d6165d43'
}
response = requests.get(url, params=arguments)
#获取响应头
print(response.headers)
print(response.json())
2.请求头
requests.get/post(url/请求地址,params/参数,…,headers/请求头,proxy/代理)
def argument():
"""
参数:发送请求的时候客户端发送给服务器的数据就是参数
传参的方式:
1.拼接url(GET) - 将参数以 '参数名=值'的形式 通过?拼接到url的后面,多个参数用&连接
例如:http://api.tianapi.com/txapi/ncovabroad/index?key=c9d408fefd8ed4081a9079d0d6165d43
2.给参数params赋值(GET/POST) - 将所有参数以键值对的形式创建一个字典,然后将字典赋给data
"""
# 方法一:
# url = 'http://api.tianapi.com/txapi/ncovabroad/index?key=c9d408fefd8ed4081a9079d0d6165d43'
# response = requests.get(url)
# 方法二:
url = 'http://api.tianapi.com/txapi/ncovabroad/index?key=c9d408fefd8ed4081a9079d0d6165d43'
arguments = {
'key': 'c9d408fefd8ed4081a9079d0d6165d43'
}
response = requests.get(url, params=arguments)
#获取响应头
print(response.headers)
print(response.json())
四. selenium的基础语法
from selenium import webdriver
# 1.创建浏览器对象
# Chrome()
b = webdriver.Chrome()
# 2.在浏览器中加载页面
b.get('https://51job.com/')
# 3.获取网页源代码
content = b.page_source
print(content)
# 4.关闭浏览器
# b.close()
五. selenium的基础操作
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
b = webdriver.Chrome()
url = 'https://www.51job.com/'
b.get(url)
# 1.获取已经加载的页面中的标签
"""
浏览器对象.find_element_by_id(id值)
浏览器对象.find_element_by_css_selector(css选择器) - 获取选择器选中的一个标签(第一个),返回值是标签对象
浏览器对象.find_elements_by_css_selector(css选择器) - 获取选择器选中的所有标签,返回值是列表,列表中元素是标签
"""
# input = b.find_element_by_id('kwdselectid')
input = b.find_element_by_css_selector('#kwdselectid')
print(input)
# 2.操作标签
# 1)输入框中输入内容
input.send_keys('数据分析')
# input.send_keys(Keys.ENTER)
# 2)点击按钮
button = b.find_element_by_css_selector('body > div.content > div > div.fltr.radius_5 > div > button')
button.click()
# b.close()