Spyder 基本知识(一)

 一直想学Spyder,苦于没有方向。经高人指点,总算开始了爬虫的学习。本文权当一个总结,若有不当请多指正,欢迎拍砖。

首先,写初级的爬虫程序离不开“Requests”库,import后正式开始。

一、Reuqests库的常用函数:

import Requests
 
requests.request()      构造一个请求,支撑一下各方法的基础方法
 
requests.get()          获取HTML页面的主要方法,对应HTTP的GET
 
requests.head()         获取HTML网页头信息的方法,对应于HTTP的HEAD
 
requests.post()         向HTML提交POST请求,    。。。。。POST
 
requests.put()          。。。。。PUT。。 ,  。。。。。PUT
 
requests.patch()        向HTML网页提交局部修改请求,对应PATCH
 
requests.delete()       。。。。。。。删除。。。。。,。。DELETE  
                

二、Response对象

调用了上述方法后,均能让服务器响应,并返回一个Response对象。其主要属性值如下:

r. status_ code                HTTP请求的返回状态, 200表示连接成功, 404表示失败
 
r.text                         HTTP响应内容的字符串形式,即, ur1对应的页面内容
 
r . encoding                   从HTTP header中猜测的响应内容编码方式
 
r . apparent_ encoding         从内容中分析出的响应内容编码方式(备选编码方式)
 
r. content                     HTTP响应内容的二进制形式 
 
 

三、请求方式及其参数设置

(1)请求方式

import Requests
requests.get(url,params,**kwargs)
 
#url:爬取网页的链接
#params:url中的额外参数,用来生成链接
#**kwargs:访问控制参数,一共12个
这个代码就是爬虫获取网页的基本格式。

(2)params

关于params,举一个例子来说明:

能看到变化的是?wd的值,而这个值可以通过params传给url来进行处理。

借用"http://httpbin.org" 能够检查URL的各个参数,下面我们借用这个网站来观察params的设置

import requests
res=requests.get("http://httpbin.org/get?name=python&age=20") #给出参数 ?name=python&age=20
print(res.status_code)
print(res.encoding)
print(res.apparent_encoding)
res.encoding=res.apparent_encoding
print(res.text)


能看到参数被直接传进去了,下面我们用header参数来保存所有参数的值,再赋给params,看看会不会得到相同的结果

import requests
headers={'name':'python',
        'age' :20
        }
res=requests.get("http://httpbin.org/get",headers)   #headers填到params的地方
print(res.status_code)
print(res.encoding)
print(res.apparent_encoding)
res.encoding=res.apparent_encoding
print(res.text)
运行结果如下:

能看到,是一样的。

(3)关于**kwargs

 有时候有些网站并不允许python的爬虫对其网页进行浏览,只允许一些浏览器进入。此时如果只是按照一般的方法则无法爬取数据,而如果我们能将自己的spider进行伪装,就可以进入了。这就是**kwargs的作用

下面我们将自己的爬虫装做火狐浏览器来进入百度的网页。:

import requests
header={'user-agent':'Mozilla/5.0'}
res=requests.get("https://www.baidu.com/explore",headers=header)   #headers填到被赋值为header
print(res.status_code)  #打印连接状态码,200连通,404未连通
 
 
res=requests.get("http://httpbin.org/get",headers=header)
res.encoding=res.apparent_encoding
print(res.text)


要注意的是,kwargs必须和原来的参数值完全相同才可以改变参数(血的教训,试了很久都没试出来,最后才发现headers少打了个s)

上述就是Spider入门需要掌握的基本知识之一,后续会陆续写完。欢迎拍砖。
 

猜你喜欢

转载自blog.csdn.net/NCTU_to_prove_safety/article/details/88594803