爬虫第四天 ---requests库

2024-04-30 21:32
文章标签 爬虫 第四天 requests

本文主要是介绍爬虫第四天 ---requests库,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Requests:让HTTP服务人类
就这一句话,可见requests库有多么的强大了。今天我们来简单的了解一下。

requests库

安装和文档地址

利用pip安装:

pip install requests

中文文档:

https://2.python-requests.org//zh_CN/latest/user/quickstart.html

发送get请求

1.最简单的发送get请求就是通过requests.get来调用。

import requests
response = requests.get("https://ww.baidu.com/")
print(response) # 返回的是状态码   <Response [200]>
print(type(response.text))   #<class 'str'>
print(response.text)
print(type(response.content))  #<class 'bytes'>
print(response.content.decode('utf-8'))

2.response.textresponse.content的区别
1. response.text :数据类型是str,是resquests库将resquests.content 进行解码的字符串。解码需要指定一个编码方式,resuqests会根据自己的猜测来判断编码的方式。所以有时候可能会猜错,就会导致解码产生乱码。这时候就应该使用response.content.decode('utf-8') 进行手动解码。
2. response.content 这个是直接从网上抓取数据。没有经过任何解码。所以是一个bytes类型。在硬盘和网络上传输的字符串都是bytes类型。

3.添加headers和查询参数。
如果想添加headers,可以传入headers参数来增加请求头中的headers信息。如果要将参数放在url中传递,可以利用params参数。

import requests
kw = {"wd":"python"}
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'
}
# params接收一个字典或字符串,字典类型自动转换为url编码,不需要urlencode()
response = requests.get("https://ww.baidu.com/",params=kw,headers=headers)
#查看响应内容,返回的是Unicode格式数据
print(response.text)#查看响应内容,response.content  返回字节流数据
print(response.content)#查看url地址
print(response.url) #'https://www.baidu.com/?wd=python'#查看响应头部字符编码
print(response.encoding)  # 'utf-8'#查看响应码
print(response.status_code)  #200

发送post请求

发送post请求,直接调用requests.post 方法就可以了。如果返回的是json数据,那么可以调用response.json 将json 字符串转换为字典或列表。

import requests
url = "https://www.lagou.com/jobs/list_python"
data = {'first': 'true','pn': '1','kd': 'python'
}
headers = {'Referer': 'https://www.lagou.com/jobs/list_python?labelWords=&fromSearch=true&suginput=','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(url,data=data,headers=headers)print(response.json())
print(type(response.json()))
#报错   json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
#在网上查半天也没弄出来,还是不理解啊

代理
在请求方法中,传递proxies参数就可以了。

import requests
proxy = {'http':'136.228.128.14:61158'
}
response = requests.get('http://httpbin.org/ip',proxies=proxy)
print(response.text)
"""
不使用代理网址
{"origin": "58.57.75.158, 58.57.75.158"
}使用代理网址
{"origin": "136.228.128.14, 136.228.128.14"
}
"""

cookie
在一个响应中包含了cookie,那么可以利用cookies 属性拿到这个返回的 cookie值。

import requests
url = "http://www.renren.com/PLogin.do"
data = {'email':'2535455833@qq.com','password':'2535455833'
}
response = requests.get('http://www.baidu.com/')
print(response.cookies)
print(response.cookies.get_dict())

session
如果想要在多次请求中共享cookie,那么就应该使用session

import requests
url = "http://www.renren.com/PLogin.do"
data = {'email':'2535455833@qq.com','password':'2535455833'
}
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' 
}
session = requests.Session()
session.post(url,data=data,headers=headers)
response = session.get("http://www.renren.com/880151247/profile")
with open('renren.html','w',encoding='utf-8') as f:f.write(response.text)

SSL证书
处理不信任的SSL证书: 在requests.get 里有参数verify=False 即可。

这篇关于爬虫第四天 ---requests库的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/949972

相关文章

Python爬虫-贝壳新房

前言 本文是该专栏的第32篇,后面会持续分享python爬虫干货知识,记得关注。 本文以某房网为例,如下图所示,采集对应城市的新房房源数据。具体实现思路和详细逻辑,笔者将在正文结合完整代码进行详细介绍。接下来,跟着笔者直接往下看正文详细内容。(附带完整代码) 正文 地址:aHR0cHM6Ly93aC5mYW5nLmtlLmNvbS9sb3VwYW4v 目标:采集对应城市的

爬虫阶段思考

内容:写这篇文章是因为最近帮同学改了很多的爬虫代码,感触良多。 我用豆瓣为例,并不是不会用别的,而是这个我个人感觉最经典。然后还会写我遇到的一些问题以及解决方法。 首先,我们得先知道怎样爬取。我用的scrapy框架爬取。 我对此图的理解就是: 从spiders中获得一个请求(REQUEST),通过引擎传递给调度器,之后再返回给引擎,引擎把url封装好后传递给下载器,下载器将资源下载好后

项目训练营第四天

项目训练营第四天 前端部分修改 前端用的是WebStorm和Ant Design Pro框架 Ant Design Pro是比较流行的一个前端登陆、注册、管理框架,能帮我们快速实现前端界面的开发 效果大致如图 使用起来也极为方便,首先在WebStorm 控制台中输入如下命令 # 使用 npmnpm i @ant-design/pro-cli -gpro create mya

简单的php爬虫程序

<?php /** * 爬虫程序 -- 原型 * * BookMoth 2009-02-21 */ /** * 从给定的url获取html内容 * * @param string $url * @return string */ function _getUrlContent($url){ $handle = fopen($url, "r"); if($handle){ $content =

Python爬虫基础-两个实用库

用Python学爬虫最大的好处就是python有很多实用库,免去了我们自己造轮子的环节,那么找哪些轮子呢?Python爬虫有两个比较实用的库,Requests和Beautiful Soup。我认为学好这两个库,Python爬虫也就学的差不多了。 是什么? Requests is the only Non-GMO HTTP library for Python, safe for human

当我们写爬虫的时候,我们实际在做什么?

当我开始学习爬虫的时候,我在网上也开始找相关教程,大多数都是xx分钟学会爬虫一类的文章。并不是否定这些文章的价值,因为他们的确“教会”我如何爬取网页。但我不想停留只会使用工具这一层面上,这就是我想谈谈自己对爬虫的理解。 思考一下我们是怎么样上网的呢? 打开浏览器,习惯性输入百度看看网络连接有没有问题或者输入谷歌看看能不能科学上网。然后我现在的习惯是打开简书首页,看看有没有新的技术类文章或者是鸡汤

技术性屏蔽百度爬虫已经一周了!

很久前明月就发现百度爬虫只抓取、只收录就是不给流量了,加上百度搜索体验越来越差,反正明月已经很久没有用过百度搜索,目前使用的浏览器几乎默认搜索都已经修改成其他搜索引擎了,真要搜索什么,一般都是必应+谷歌结合着使用。所以就一直在纠结要不好屏蔽百度爬虫,上周借助 CloudFlare 的【随机加密】先技术性的屏蔽百度爬虫了。 说起来比较好笑都 2024 年了,早就号称支持 HTTPS 的百度爬虫

13.爬虫---PyMongo安装与使用

13.PyMongo安装与使用 1.安装 PyMongo2.使用PyMongo2.1连接数据库和集合2.2增加数据2.3修改数据2.4查询数据2.5删除数据 3.总结 MongoDB 安装可以看这篇文章MongoDB安装配置教程(详细版) 1.安装 PyMongo PyMongo 是Python中用于连接MongoDB数据库的库,安装起来非常简单。通常情况下,只需要在命

Python中的爬虫实战:豆瓣图书爬虫

Python是当今最热门的编程语言之一,在不同的领域都得到了广泛的应用,如数据科学、人工智能、网络安全等。其中,python在网络爬虫领域表现出色,许多企业和个人利用python进行数据采集和分析。本篇文章将介绍如何使用python爬取豆瓣图书信息,帮助读者初步了解python网络爬虫的实现方法和技术。 首先,对于豆瓣图书信息爬虫,我们需要用到Python中的两个重要的库:urllib和beau

python爬虫学习笔记一(基本概念urllib基础)

学习资料:尚硅谷_爬虫 学习环境:  pycharm 一.爬虫基本概念 爬虫定义 > 解释1:通过程序,根据URL进行爬取网页,获取有用信息 > 解释2:使用程序模拟浏览器,向服务器发送请求,获取相应信息 爬虫核心 > 1.爬取整个网页 > 2.解析数据,获取关心的数据 > 3.难点:爬虫VS非爬虫 爬虫设计思路 > 1.确定爬取的url  > 2.模拟浏览器通过http协议访问url