1.使用 urllib2 实现
#! /usr/bin/env python # -*- coding=utf-8 -*- import urllib2 url="https://www.baidu.com" req_header = {"User-Agent":"Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11", "Accept":"text/html;q=0.9,*/*;q=0.8", "Accept-Charset":"ISO-8859-1,utf-8;q=0.7,*;q=0.3", "Accept-Encoding":"gzip", "Connection":"close", "Referer":None #注意如果依然不能抓取的话,这里可以设置抓取网站的host } req_timeout = 5 req = urllib2.Request(url,None,req_header) resp = urllib2.urlopen(req,None,req_timeout) html = resp.read() print(html)
2.使用 requests 模块
(1).get请求
#-*- coding:utf-8 -*- import requests url = "https://www.baidu.com" payload = {"key1": "value1", "key2": "value2"} r = requests.get(url, params=payload) print r.text
(2).post请求
#-*- coding:utf-8 -*- import requests url1 = "http://www.exanple.com/login"#登陆地址 url2 = "http://www.example.com/main"#需要登陆才能访问的地址 data={"user":"user","password":"pass"} headers = { "Accept":"text/html,application/xhtml+xml,application/xml;", "Accept-Encoding":"gzip", "Accept-Language":"zh-CN,zh;q=0.8", "Referer":"http://www.example.com/", "User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36" } res1 = requests.post(url1, data=data, headers=headers) res2 = requests.get(url2, cookies=res1.cookies, headers=headers) print res2.content#获得二进制响应内容 print res2.raw#获得原始响应内容,需要stream=True print res2.raw.read(50) print type(res2.text)#返回解码成unicode的内容 print res2.url print res2.history#追踪重定向 print res2.cookies print res2.cookies["example_cookie_name"] print res2.headers print res2.headers["Content-Type"] print res2.headers.get("content-type") print res2.json#讲返回内容编码为json print res2.encoding#返回内容编码 print res2.status_code#返回http状态码 print res2.raise_for_status()#返回错误状态码
(3).使用session对象的写法
#-*- coding:utf-8 -*- import requests s = requests.Session() url1 = "http://www.exanple.com/login"#登陆地址 url2 = "http://www.example.com/main"#需要登陆才能访问的地址 data={"user":"user","password":"pass"} headers = { "Accept":"text/html,application/xhtml+xml,application/xml;", "Accept-Encoding":"gzip", "Accept-Language":"zh-CN,zh;q=0.8", "Referer":"http://www.example.com/", "User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36" } prepped1 = requests.Request("POST", url1, data=data, headers=headers ).prepare() s.send(prepped1) """ 也可以这样写 res = requests.Request("POST", url1, data=data, headers=headers ) prepared = s.prepare_request(res) # do something with prepped.body # do something with prepped.headers s.send(prepared) """ prepare2 = requests.Request("POST", url2, headers=headers ).prepare() res2 = s.send(prepare2) print res2.content """另一种写法""" #-*- coding:utf-8 -*- import requests s = requests.Session() url1 = "http://www.exanple.com/login"#登陆地址 url2 = "http://www.example.com/main"#需要登陆才能访问的页面地址 data={"user":"user","password":"pass"} headers = { "Accept":"text/html,application/xhtml+xml,application/xml;", "Accept-Encoding":"gzip", "Accept-Language":"zh-CN,zh;q=0.8", "Referer":"http://www.example.com/", "User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36" } res1 = s.post(url1, data=data) res2 = s.post(url2) print(resp2.content)
3.其他的一些请求方式
>>> r = requests.put("http://httpbin.org/put")
>>> r = requests.delete("http://httpbin.org/delete")
>>> r = requests.head("http://httpbin.org/get")
>>> r = requests.options(http://httpbin.org/get)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
本文向大家介绍如何基于Python + requests实现发送HTTP请求,包括了如何基于Python + requests实现发送HTTP请求的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了如何基于Python + requests实现发送HTTP请求,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一、在接口自动化测试过程中,存在
问题内容: 我想在我正在使用的Web应用程序上测试一些URL。为此,我想手动创建HTTP POST请求(这意味着我可以添加我喜欢的任何参数)。 我缺少Chrome和/或Firefox中的任何扩展程序或功能吗? 问题答案: 我一直在为这种类型的东西制作一个名为Postman的Chrome应用。所有其他扩展似乎都过时了,所以我自己做了。它还具有许多其他功能,这些功能有助于在此处记录我们自己的API。
问题内容: 我想从网站上获取一些数据。通常,我使用这些东西,但是现在该站点使用JS来提供数据。las,不支持。 我该怎么用呢? 问题答案: 以下是一些选项: 硒(教程) 对于无头自动化,可以将Selenium与PhantomJS结合使用 WebKit 蜘蛛猴
我最近一直在用Java编写自己的Webserver,因为我觉得有一个很不错,昨天我偶然发现了一个问题,我仍然没有解决。我的浏览器(取消搜索Chromium)似乎向服务器发送了一些空请求或类似的东西。我实现了一个请求处理程序,它应该读取GET请求并提取请求的资源。它的工作原理是这样的:它以请求为例:“GET/index.htmlHTTP/1.1”并将其放入带有String.split (" ");
在处理 ASP 脚本时,任何没有包含在 ASP 定界符或 <SCRIPT> 标记中的文本或图形都将被简单地返回给浏览器。可以通过使用 Response 对象显示地把内容发送给浏览器。 发送内容 要将内容从 ASP 定界符内部或过程发送给浏览器,可以使用 Response 对象的 Write 方法。例如,下面的语句可以根据用户是否访问过此页而发送不同的问候语: <% If FirstTime =
本文向大家介绍Python实现模拟浏览器请求及会话保持操作示例,包括了Python实现模拟浏览器请求及会话保持操作示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python实现模拟浏览器请求及会话保持操作。分享给大家供大家参考,具体如下: python下读取一个页面的数据可以通过urllib2轻松实现请求 涉及到页面的POST请求操作的话需要提供头信息,提交的post数据和请求页面。