虽然Python的标准库中 urllib 模块已经包含了平常我们使用的大多数功能,但是它的 API 使用起来让人感觉不太好,而 Requests 自称 "HTTP for Humans",说明使用更简洁方便。
- requests 的底层实现其实就是 urllib
基本GET请求(headers参数 和 parmas参数)
- 最基本的GET请求可以直接用get方法
response = requests.get("http://www.baidu.com/") # 也可以这么写 # response = requests.request( "get","http://www.baidu.com/" )
response的常用方法:
- response.text 返回解码后的字符串
- respones.content 以字节形式(二进制)返回。
- response.status_code 响应状态码
- response.request.headers 请求的请求头
- response.headers 响应头
- response.encoding = ‘utf-8‘ 可以设置编码类型
- response.encoding 获取当前的编码
- response.json() 内置的JSON解码器,以json形式返回,前提返回的内容确保是json格式的,不然解析出错会抛异常
基本POST请求(data参数)
- 最基本post方法
response = requests.post(url=url,data = data)
- url:post请求的目标url
- data:post请求的表单数据
import requests req_url = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=null" #分析表单数据 formdata = { 'i': '老鼠爱大米','from': 'AUTO','to': 'AUTO','smartresult': 'dict','client': 'fanyideskweb','doctype': 'json','version': '2.1','keyfrom': 'fanyi.web','action': 'FY_BY_CLICKBUTTION','typoResult': 'false',} #添加请求头 req_header = { 'User-Agent':'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/67.0.3396.99 Safari/537.36',} response = requests.post( req_url,data = formdata,headers = req_header ) #print (response.text) # 如果是json文件可以直接显示 print (response.json())
设置代理(proxies参数)
- 如果需要使用代理,你可以通过为任意请求方法提供 proxies 参数来配置单个请求:
import requests # 根据协议类型,选择不同的代理 proxies = { "http": "http://12.34.56.79:9527","https": "http://12.34.56.79:9527",} response = requests.get( "http://www.baidu.com",proxies = proxies ) print(response.text)
什么是XPath?
- XPath (XML Path Language) 是一门在 XML 文档中查找信息的语言,可用来在 XML 文档中对元素和属性进行遍历。
什么是XML?
- XML 指可扩展标记语言(EXtensible MarkuP Language)
- XML 是一种标记语言,很类似 HTML
- XML 的设计宗旨是传输数据,而非显示数据
- XML 的标签需要我们自行定义。
- XML 被设计为具有自我描述性。
XML 是 W3C 的推荐标准
XML 和 HTML 的区别
数据格式 | 描述 | 设计目标 |
---|---|---|
XML | Extensible MarkuP Language (可扩展标记语言) | 被设计为传输和存储数据,其焦点是数据的内容。 |
HTML | HyperText MarkuP Language (超文本标记语言) | 显示数据以及如何更好显示数据。 |
HTML DOM | Document Object Model for HTML (文档对象模型) | 通过 HTML DOM,可以访问所有的 HTML 元素,连同它们所包含的文本和属性。可以对其中的内容进行修改和删除,同时也可以创建新的元素。 |
最常用的路径表达式:
表达式 | 描述 |
---|---|
nodename | 选取此节点的所有子节点 |
/ | 从根节点选取 |
// | 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置 |
. | 选取当前节点 |
.. | 选取当前节点的父节点 |
@ | 选取属性。 |
一些路径表达式以及表达式的结果:
路径表达式 | 结果 |
---|---|
bookstore | 选取 bookstore 元素的所有子节点。 |
/bookstore | 选取根元素 bookstore。注释:假如路径起始于正斜杠( / ),则此路径始终代表到某元素的绝对路径! |
bookstore/book | 选取属于 bookstore 的子元素的所有 book 元素。 |
//book | 选取所有 book 子元素,而不管它们在文档中的位置。 |
bookstore//book | 选择属于 bookstore 元素的后代的所有 book 元素,而不管它们位于 bookstore 之下的什么位置。 |
//@lang | 选取名为 lang 的所有属性。 |
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。