目录
一、urllib库
二、robots协议
三、urllib的4个模块
3.1urlib库的几个模块
3.2request模块
3.3、超时设置
3.4、一个简单的get请求
3.4 请求头添加
3.5 链接解析
一、urllib库
urllib是Python的一个内置的http请求库。Python urllib | 菜鸟教程
二、robots协议它规定了网站的哪些允许抓取,哪些是不允许抓取的。在一个网址的后添加robots.txt即可查询。
上面以CSDN为例查看,结果都是disallow,好家伙,嘿嘿~~~
三、urllib的4个模块 3.1urlib库的几个模块Urllib库有四个模块:request,error, parse, robotparser
- request :用于请求网址的模块(发请求)
- error:异常处理模块
- parse:用于修改拼接等的模块(解析RUL或目录)
- robotparser:用来判断哪些网站可以爬,哪些网站不可
请求我的CSDN博客:
import urllib.request response = urllib.request.urlopen('https://blog.csdn.net/qq_61122628?spm=1010.2135.3001.5343') print(response.read().decode('utf-8')) #调用 read 方法可以得到返回的网页内容,打印网页内容
3.3、超时设置
import urllib.request response = urllib.request.urlopen('https://github.com/',timeout=10) print(response.status)
time out这里可以知道请求超时,从而报错。
3.4、一个简单的get请求# 引入请求模块 import urllib.request # 发起请求,设置超时为5s response = urllib.request.urlopen('http://www.baidu.com', timeout = 5) print(response.status) # 状态码,判断是否成功,200 print(response.getheaders()) # 响应头 得到的一个元组组成的列表 print(response.getheader('Server')) #得到特定的响应头3.4 请求头添加
from urllib import request url='https://blog.csdn.net/qq_61122628?spm=1001.2101.3001.5343' headers={'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36'} req=request.Request(url=url,headers=headers) response=request.urlopen(req) print(response.read().decode('utf-8'))
为什么要添加请求头,请求头的作用是模拟浏览器去爬取内容,主要是为了被反扒。
3.5 链接解析from urllib.parse import urlparse s=urlparse('https://www.csdn.net/?spm=1011.2124.3001.5359')#解析的网址 print(type(s),s)#打印类型和解析结果
上面参数:
scheme:表示协议 netloc:域名 path:路径 params:参数 query:查询条件,一般都是get请求的url fragment:锚点,用于直接定位页面的下拉位置,跳转到网页的指定位置
网址的标准链接格式就是:
scheme://netloc/path;params?query#fragment
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)