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 ...
随机推荐
- Asterist搭建步骤
环境: # cat /proc/version Linux version 2.6.18-308.el5 (mockbuild@x86-010.build.bos.redhat.com) (gcc v ...
- C#绑定数据
1.<asp:DropDownList <asp:DropDownList ID="ddlclientType" runat="server" Wi ...
- HTML5的audio在手机网页上无法自动加载/播放音乐,能否实现该功能?
在IOS中第一次调用play方法播放音频会被阻止,必须得等用户有交互动作,比如touchstart,click后才能正常调用,在微信中可以通过监听WeixinJSBridgeReady事件来提前播放一 ...
- SpringMVC中数据转换
SpringMVC中接收到的数据都是String形式,然后再根据反射机制将String转换成对应的类型.如果此时想接收一个Date类型,那么我们可以定义一个转换器来完成. 例如,我们有下面的Emp类: ...
- Q:链表的中间元素
问题:如何得到一个链表的中间元素? 相信,这个问题对于刚入门编程的人来说,都不会难,最自然而然的想法是先遍历一遍链表,统计链表中的元素的个数,之后,再走一遍链表,所走的步长为链表长度的一半.这样就 ...
- ECMAScript 5和ECMAScript6的新特性以及浏览器支持情况
ECMAScript简介: 它是一种由Ecma国际(前身为欧洲计算机制造商协会)制定和发布的脚本语言规范,javascript在它基础上经行了自己的封装.但通常来说,术语ECMAScript和java ...
- 教程:RSS全文输出,自己动手做。(一)
这里以PHP版为例,尽量说得通俗点吧,水平实在有限,见谅. 目前我这里所有的获取全文输出的网站大概是三种情况: 要输出的内容集中在一页上,也就是看似列表页的页面里集中了你想要的所有内容,并不需要点击“ ...
- 【代码笔记】iOS-gif图片播放
一,效果图. 二,工程图. 三,代码. RootViewController.h #import <UIKit/UIKit.h> @interface RootViewController ...
- js判断移动端页面按home键切换到桌面事件
---恢复内容开始--- 原理就是通过页面标签切换事件(visibilitychange)来判断,亦可用户移动端桌面和app切换. 先看代码: var hiddenProperty = 'hidden ...
- 前端微信小程序实战篇
电商底部导航栏的制作 我想大家对电商一定不陌生,一般电商的底部导航栏有以下几个首页.分类.购物车.个人中心. app.json是用来配置page路径以及导航栏属性的,那我们要做首页.分类.购物车.个人 ...