Python爬虫中最重要、最常见、一定要熟练掌握的库[Python基础]

python

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。

以下文章来源于Python绿色通道 ,作者龙哥带你飞

Python爬虫、数据分析、网站开发等案例教程视频免费在线观看

https://space.bilibili.com/523606542

开始正文

Requests库是Python爬虫中最最最最最最重要与常见的库,一定要熟练掌握它.

下面我们来认识这个库

 

Requests

requests是Python最为常用的http请求库,也是极其简单的.使用的时候,首先需要对requests进行安装,直接使用Pycharm进行一键安装。

1.响应与编码

import requests

url = "http://www.baidu.com"

r = requests.get(url)

print type(r)

print r.status_code

print r.encoding

#print r.content

print r.cookies

得到:

<class"requests.models.Response">

200

ISO-8859-1

<RequestsCookieJar[<Cookie BDORZ=27315 for .baidu.com/>]>

2.Get请求方式

values = {"user":"aaa","id":"123"}

url = "http://www.baidu.com"

r = requests.get(url,values)

print r.url

得到:http://www.baidu.com/?user=aaa&id=123

3.Post请求方式

values = {"user":"aaa","id":"123"}

url = "http://www.baidu.com"

r = requests.post(url,values)

print r.url

#print r.text

得到:

http://www.baidu.com/

4.请求头headers处理

user_agent = {"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.104 Safari/537.36 Core/1.53.4295.400 QQBrowser/9.7.12661.400"}

header = {"User-Agent":user_agent}

url = "http://www.baidu.com/"

r = requests.get(url,headers=header)

print r.content

注意处理请求的headers
很多时候我们服务器会检验请求是否来自于浏览器,所以我们需要在请求的头部伪装成浏览器来请求服务器.一般做请求的时候,最好都要伪装成浏览器,防止出现拒绝访问等错误,这也是一种反爬虫的一种策略

特别说明,以后无论我们做什么请求,一定要带上headers,千万不要偷懒省事,把这里当成一条交通规则来理解,闯红灯不一定会发生危险但不安全,为了省事,我们遵循红灯停绿灯行就够了,做网络爬虫请求也一样,必须把这个headers加上,以防出错.

user_agent = {"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.104 Safari/537.36 Core/1.53.4295.400 QQBrowser/9.7.12661.400"}

header = {"User-Agent":user_agent}

url = "http://www.qq.com/"

request = urllib2.Request(url,headers=header)

response = urllib2.urlopen(request)

print response.read().decode("gbk")#这里注意一下需要对读取的网页内容进行转码,先要查看一下网页的chatset是什么格式.

在浏览器上打开www.qq.com然后按F12,查看User-Agent:

User-Agent : 有些服务器或 Proxy 会通过该值来判断是否是浏览器发出的请求
Content-Type : 在使用 REST 接口时,服务器会检查该值,用来确定 HTTP Body 中的内容该怎样解析。
application/xml :在 XML RPC,如 RESTful/SOAP 调用时使用
application/json :在 JSON RPC 调用时使用
application/x-www-form-urlencoded :浏览器提交 Web 表单时使用
在使用服务器提供的 RESTful 或 SOAP 服务时, Content-Type 设置错误会导致服务器拒绝服务

5.响应码code与响应头headers处理

url = "http://www.baidu.com"

r = requests.get(url)

if r.status_code == requests.codes.ok:

   print r.status_code

   print r.headers

   print r.headers.get("content-type")#推荐用这种get方式获取头部字段

else:

   r.raise_for_status()

得到:

200

{"Content-Encoding": "gzip", "Transfer-Encoding": "chunked", "Set-Cookie": "BDORZ=27315; max-age=86400; domain=.baidu.com; path=/", "Server": "bfe/1.0.8.18", "Last-Modified": "Mon, 23 Jan 2017 13:27:57 GMT", "Connection": "Keep-Alive", "Pragma": "no-cache", "Cache-Control": "private, no-cache, no-store, proxy-revalidate, no-transform", "Date": "Wed, 17 Jan 2018 07:21:21 GMT", "Content-Type": "text/html"}

text/html

6.cookie处理

url = "https://www.zhihu.com/"

r = requests.get(url)

print r.cookies

print r.cookies.keys()

得到:

<RequestsCookieJar[<Cookie aliyungf_tc=AQAAACYMglZy2QsAEnaG2yYR0vrtlxfz for www.zhihu.com/>]>

["aliyungf_tc"]

7重定向与历史消息

处理重定向只是需要设置一下allow_redirects字段即可,将allow_redirectsy设置为True则是允许重定向的,设置为False则禁止重定向的

r = requests.get(url,allow_redirects = True)

print r.url

print r.status_code

print r.history

得到:

http://www.baidu.com/

200

[]

8.超时设置

超时选项是通过参数timeout来设置的
python url = "http://www.baidu.com" r = requests.get(url,timeout = 2)

9.代理设置

proxis = {

   "http":"http://www.baidu.com",

   "http":"http://www.qq.com",

   "http":"http://www.sohu.com",

}

url = "http://www.baidu.com"

r = requests.get(url,proxies = proxis)

如果你觉得文章还不错,请大家点赞分享下。你的肯定是我最大的鼓励和支持。

以上是 Python爬虫中最重要、最常见、一定要熟练掌握的库[Python基础] 的全部内容, 来源链接: utcz.com/z/529904.html

回到顶部