Python学习---爬虫学习[requests模块]180411
模块安装
安装requests模块
pip3 install requests

安装beautifulsoup4模块
[更多参考]https://blog.csdn.net/sunhuaqiang1/article/details/65936616
pip install beautifulsoup4

初识requests模块
【更多参考】http://www.cnblogs.com/wupeiqi/articles/6283017.html
requests.post(url="", data="data", json="json", **kwargs)
requests.get(url="", params="", **kwargs)
requests.options(url="", **kwargs)
requests.put(url="", data="data", **kwargs)
requests.delete(url="", **kwargs)
requests.head(url="", **kwargs)
requests.get请求实例
import requests
from bs4 import BeautifulSoup response = requests.get(url="https://www.sogou.com/sgo?query=小猪佩奇")
# print("GET请求结果:", response.text) soup = BeautifulSoup(response.text, "html.parser")
str = soup.find_all(name="div", class_="rt-news151127") # 因为class是关键字,所以这里带了下划线
print("BS解析后的内容:", str)

requests.post请求实例
import requests
from bs4 import BeautifulSoup form_data = {
'phone': '13235',
'password': 'asdf',
'oneMonth': 1
}
response_post = requests.post(
url='http://dig.chouti.com/login',
data=form_data
)
print(response_post.text)



requests参数
【更多参考】http://www.cnblogs.com/wupeiqi/articles/6283017.html
- requests模块
a. 基本参数:method,url,params,data,json,headers,cookies
b. 其他参数:files,auth,proxies....

实例演示POST/GET请求参数
settings.py
INSTALLED_APPS = [
...
'app01', # 注册app
]
MIDDLEWARE = [
...
# 'django.middleware.csrf.CsrfViewMiddleware',
...
] STATICFILES_DIRS = (os.path.join(BASE_DIR, "statics"),) # 现添加的配置,这里是元组,注意逗号
TEMPLATES = [
...
'DIRS': [os.path.join(BASE_DIR, 'templates')],
]
urls.py
from django.contrib import admin
from django.urls import path
from django.conf.urls import url, include
from app01 import views
urlpatterns = [
url('test/', views.Test),
]
views.py
from django.shortcuts import render, redirect, HttpResponse
from app01 import models
def Test(request):
print("request.method:", request.method)
print("request.GET:", request.GET)
print("request.POST:", request.POST)
print("request.body:", request.body)
return HttpResponse("OK ")
test.py -->[Django的服务端启动后执行该py文件,get和post分开请求]
import requests
# POST请求中data和json参数并无实际意义
requests.request(
method='get', # get请求的参数都会在浏览器内显示
url='http://127.0.0.1:8000/test/',
# 这里是字典形式的拼接
params={'username': 'hhh', 'passwd': 'hhh800@'}, # rqeuests会自动拼接为 test?username=hhh&passwd=hhh800@
# 直接传递拼接好的字符串也是可以的
# params="username=hhh&passwd=hhh800@" # test?username=hhh&passwd=hhh800@
) # POST请求中可有params、data和json参数
import json
requests.request(
method='post',
url='http://127.0.0.1:8000/test/',
# 这里是字典形式的拼接
# params参数需要: request.GET.get('username')来获取
# 直接传递拼接好的字符串也是可以的
# params="username=hhh&passwd=hhh800@" # test?username=hhh&passwd=hhh800@
params={'username': 'hhh', 'passwd': 'hhh800@'}, # rqeuests会自动拼接为 test?username=hhh&passwd=hhh800@
# data 参数需要 request.POST.get('username')来获取
# data可以直接传递字符串过去: data="username=hhh;passwd=hhh800@" 【用封号区分开,实际上也是这样发送数据的】
# data属性默认的请求头为: content-type: application/x-www-form-urlencoded
data={'age': 24, 'school': 'peking'}, # 这里的请求参数是以Form_Data传递过去,不再浏览器显示
# json默认请求头是: content-type: application/json,所以body有内容,POST内无内容
# json.dumps后的结果是字符串
# json=json.dumps({'age': 24, 'school': 'peking'})
)
Data格式的POST后台显示:

JSON格式的POST后台显示:

GET后台显示

如果需要手动添加App则命令为:
python manage.py startapp app01
实例演示Header请求
一般我们会在post请求的headers里面放2个参数:
'User-Agent': '告诉服务器是正常的浏览器访问服务【Chrome/64.0.3282.186 Safari/537.36】',
'Referer' : '告诉服务器我不是直接登录,上次访问过官网,这次是在上次访问基础上登录操作
import requests
response = requests.post(
url="https://www.zhihu.com/",
headers={
'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36',
'Referer': 'https://www.zhihu.com', # 告诉网站我上次访问过本官网
}
)
print("带header的请求:\n", response.text)
不带请求头的访问:

带请求头的访问:

实例演示Cookies请求:session和cookie都是用于保持和服务器之间的对话
一般我们在post请求的Cookies里面放的参数都是根据前台获取的cookies,进行参数传递
import requests
response = requests.post(
url="https://home.cnblogs.com/set/", # 进入设置页面
cookies={
'.Cnblogs.AspNetCore.Cookies':'CfDJ8Gf34cttDnEy2UYRcGZ0x3iHRU51QX',
'.CNBlogsCookie':'4BB40C02AC6BB1861B8A9835F7FC06D' # 这里仅举例,非正常cookie内容
}
)
print("带cookie进行请求:\n", response.text)
前台登录成功后的cookies信息:

后台访问设置页面:

Python学习---爬虫学习[requests模块]180411的更多相关文章
- 04.Python网络爬虫之requests模块(1)
引入 Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用. 警告:非专业使用其他 HTTP 库会导致危险的副作用,包括:安全缺陷症.冗余代码症.重新发明轮子症.啃文档 ...
- Python网络爬虫之requests模块(1)
引入 Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用. 警告:非专业使用其他 HTTP 库会导致危险的副作用,包括:安全缺陷症.冗余代码症.重新发明轮子症.啃文档 ...
- 04,Python网络爬虫之requests模块(1)
引入 Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用. 警告:非专业使用其他 HTTP 库会导致危险的副作用,包括:安全缺陷症.冗余代码症.重新发明轮子症.啃文档 ...
- 06.Python网络爬虫之requests模块(2)
今日内容 session处理cookie proxies参数设置请求代理ip 基于线程池的数据爬取 知识点回顾 xpath的解析流程 bs4的解析流程 常用xpath表达式 常用bs4解析方法 引入 ...
- Python网络爬虫之requests模块(2)
session处理cookie proxies参数设置请求代理ip 基于线程池的数据爬取 xpath的解析流程 bs4的解析流程 常用xpath表达式 常用bs4解析方法 引入 有些时候,我们在使用爬 ...
- Python网络爬虫之requests模块
今日内容 session处理cookie proxies参数设置请求代理ip 基于线程池的数据爬取 知识点回顾 xpath的解析流程 bs4的解析流程 常用xpath表达式 常用bs4解析方法 引入 ...
- Python爬虫之requests模块(1)
一.引入 Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用. 警告:非专业使用其他 HTTP 库会导致危险的副作用,包括:安全缺陷症.冗余代码症.重新发明轮子症.啃 ...
- 孤荷凌寒自学python第六十七天初步了解Python爬虫初识requests模块
孤荷凌寒自学python第六十七天初步了解Python爬虫初识requests模块 (完整学习过程屏幕记录视频地址在文末) 从今天起开始正式学习Python的爬虫. 今天已经初步了解了两个主要的模块: ...
- python爬虫值requests模块
- 基于如下5点展开requests模块的学习 什么是requests模块 requests模块是python中原生的基于网络请求的模块,其主要作用是用来模拟浏览器发起请求.功能强大,用法简洁高效.在 ...
- Python爬虫练习(requests模块)
Python爬虫练习(requests模块) 关注公众号"轻松学编程"了解更多. 一.使用正则表达式解析页面和提取数据 1.爬取动态数据(js格式) 爬取http://fund.e ...
随机推荐
- Linux内存信息查看——free命令
free 命令可以显示系统已用和空闲的内存情况.包括物理内存.交互区内存(swap)和内核缓冲区内存(buffer).共享内存将被忽略.在Linux系统监控的工具中,free命令是最经常使用的命令之一 ...
- [九省联考 2018]秘密袭击coat
Description 题库链接 给出一棵 \(n\) 个点的树,每个点有点权.求所有联通块的权值 \(k\) 大和,对 \(64123\) 取模. \(1\leq n,k\leq 1666\) So ...
- UOJ #357. 【JOI2017春季合宿】Sparklers
Description 小S和小M去看花火大会. 一共有 n 个人按顺序排成一排,每个人手上有一个仅能被点燃一次的烟花.最开始时第 K 个人手上的烟花是点燃的. 烟花最多能燃烧 T 时间.每当两个人的 ...
- Node.js之HTTP请求与响应
在C#.OC中也是客户端发起一个请求,服务端作出响应.我们可以把这个过程抽象理解 . 1.客户端给服务端发起请求相当于向服务端写入一个流(writable) 2.服务端读取客户端的流(readable ...
- Func的介绍——c#封装的代理
经常看到 Func<int, bool>...这样的写法,看到这样的就没有心思看下去了.我们学技术还是需要静下心来. 对Func<int,bool>的Func转到定义看它的解 ...
- 超详细的HashMap解析(jdk1.8)
目录 一.预备知识 时间复杂度 基本数据结构 基本位运算 二.HashMap实现原理 结构 速度 三.源码分析 基本常量 基本成员变量 构造方法 put方法 remove 四.日常使用注意事项 五.总 ...
- Glide填坑指南
一.前言:再优秀的开源库都有坑要填 手上的项目使用的图片加载框架是:Universal-Image-Loader+业务需要定制化的一些代码.Universal-Image-Loader 这个框架是一个 ...
- 动态We API层(动态生成js)
ABP动态webapi前端怎么调用? 研究abp项目时,页面js文件中一直不明白abp.services... 是从哪里来的 在调试SimpleTaskSystem的AngularJs demo时,一 ...
- 网络编程: 基于UDP协议的socket
udp是无链接的,启动服务之后可以直接接受消息,不需要提前建立链接 UDP协议的通信优势: 允许一个服务器同时和多个客户端通信, TCP不行 服务端 import socket sk = socket ...
- elastic job will never fire
1. 描述 2018-08-20 18:11:01.912 [Thread-8] INFO org.quartz.impl.StdSchedulerFactory - Using default i ...