爬虫简单架构
跟着北大理工的老师学习爬虫!
一口吃不成胖子
冲鸭!fighting!!!!!!!!
import requests
def getHTMLText(url):
try:
r=requests.get(url,timeout=30)
#构造一个向服务器请求资源的request对象
#返回一个包含服务器资源的response对象
r.raise_for_status()
#如果状态不是200,引发HTTPError异常
r.encoding=r.apparent_encoding
return r.text
except:
return '产生异常'
if __name__=='__main__':
url='http://www.baidu.com'
print(getHTMLText(url))
解释:
requests库简单、方便,可以说是爬虫最棒的第三方库
requests库主要有7个方法
1、requests.request():构造一个请求,支撑一下各方法的基础方法
2、requests.get():获取HTML网页的主要方法,对应于HTTP的GET
3、requests.head():获取HTML网页头信息的主要方法,对应于HTTP的HEAD
4、requests.post():向HTML网页提交post请求的方法,对应于HTTP的POST
5、requests.out():向HTML网页提交put请求的方法,对应于HTTP的PUT
6、requests.patch():向HTML网页提交局部修改的请求,对应于HTTP的PATCH
7、requests.delete():向HTML网页提交删除请求,对应于HTTP的DELETE
重点分析:
r=requests.get(url)
构造一个向服务器请求资源的request对象
返回一个包含服务器资源的response对象
response对象的属性:
r.status_code:HTTP请求返回的状态,比如200代表ok
r.text:HTTP响应内容的字符串形式,即url对应的页面内容
r.encoding:从HTTP header 中猜测的响应内容的编码方式
r.apparent_encoding:从内容中解析处响应内容的编码方式(备选编码方式)
r.content:HTTP相应内容的二进制形式
r.raise_for_status():如果不是200,产生异常requests.HTTPError