requests和xpath总结

-为什么使用Requests库?

Python的标准库中 urllib 模块已经包含了平常我们使用的大多数功能,但是它的 API 使用起来让人感觉不太好,Requests 继承了urllib的所有特性,并且API使用更加方便,可以简化我们的代码

Requests使用

  • *安装*:pip3 install requests

请求方法格式
`GET方式请求

url = 'http://www.baidu.com'

headers = {
    'User-Agent':'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Mobile Safari/537.36'
}
response = requests.get(url=url,headers=headers,params=None)
print(response.status_code)
print(response.headers)
```....

 -  params跟的是get请求url地址后?号后面拼接的参数
响应的结果处理如下
* response.text  返回解码后的字符串
* * respones.content  以字节形式(二进制)返回。
* * response.status_code  响应状态码
* * response.request.headers  请求的请求头
* * response.headers  响应头
* * response.encoding = 'utf-8'   可以设置编码类型
* * response.encoding         获取当前的编码
* * response.json()   内置的JSON解码器,以json形式返回,前提返回的内容确保是json格式的,不然解析出错会抛异常

POST请求格式

import requests

form_data = {
    'username':'12345678910',
    'password':'zn123456'
}
url = 'http://127.0.0.1:8000/api/login/'
headers = {
    'User-Agent':'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Mobile Safari/537.36'
}
response=requests.post(data=form_data,url=url,headers=headers)
print(response.text)
print(response.status_code)
print(response.json()['token'])

文件上传

import requests

#文件上传
url = 'https://httpbin.org/post'
files = {'file':open('page.html','r')}
headers = {
    'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36'
}
# files: (optional) Dictionary
response = requests.post(url=url,files=files,headers=headers)
if response.status_code == 200:
    print(response.text)`
dds

设置代理

只需要在请求中添加
# 设置代理
# proxies = {
#     'http':'192.168.2.111:8082',
#
# 
}response=requests.get(url=url,params=None,headers=headers,verify=False,proxies=proxies)

session

# session:在requests请求中,我们旺旺需要让上下请求保持联系,
# 这是我们就需要使用session
import requests
# 实力化session对象
session = requests.session()
headers={
    'User-Agent':'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Mobile Safari/537.36'
}
response=session.get('http://www.baidu.com',headers=headers)
print(response.headers)
# session.cookies保存的是服务器,返回cookies信息
print(session.cookies)

# 当session.cookies有用户信息之后,我们在使用session.get()或者session.post
# 发起请求时,自动会携带cookies等信息
session.get('http://www.baidu.com',headers=headers)
# 一般情况下,我们会在模拟登录时用到requests.session,完成登录
# 然后使用session发起请求

认证证书

  • #如果出现了证书认证ssl ca证书错误
    #verify:Defaults to True,默认为true,表示进行证书认证
    #如果出现了证书认证ssl ca证书错误修改verify为False,表示忽略证书认证

请求相关参数总结

  • **:param method: 设置请求的方式.

  • **:param url: 请求的url地址.

  • ** :param params: (optional) Dictionary get请求后面拼接的参数

  • :param data: (optional) Dictionary ,post请求提交的数据

  • :param json: (optional) json data 要求是一个json数据,等价与data参数的作用

  • :param headers: (optional) Dictionary 设置请求头

  • :param cookies: (optional) Dict or CookieJar object 模拟用户登录的时候

  • :param files: (optional) Dictionary 上传文件

  • .:param auth: (optional) Auth tuple web客户端认证auth(账号,密码)

  • :param timeout: (optional) 设置请求超时时间

  • :param allow_redirects: (optional) Boolean. Defaults to True.是否允许重定向

  • :param proxies: (optional) Dictionary 设置代理.

  • :param verify: Defaults to True,ssl证书认证,默认为True,表示进行证书验证**

XPath总结

什么是xpath

- XPath即为XML路径语言(XML Path Language),它是一种用来在XML文档中查找信息的语言,可用来在 XML 文档中对元素和属性进行搜索,同样也适用于HTML。
- 

XML


XML 是一种标记语言,很类似 HTML**

XML 的设计宗旨是传输数据,而非显示数据
XML 的标签需要我们自行定义。

常用的路径表达式

nodename 选取此节点的所有子节点。
/ 从当前节点选取直接子节点
// 从当前节点选择文档中的节点,而不考虑它们的位置。
. 选取当前节点。
…选取当前节点的父节点。
@ 选取属性。
//title | //price 选取文档中的所有 title 和 price 元素。

使用xpath

导入xpath
from lxml import etree
#先构造一个xpath解析对象
html = etree.HTML(html) #构造一个Xpath解析对像,并且自动修正HTML文本
text() 获取标签文本
@属性名 获取标签属性值


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值