学习进度05
Posted kt-xb
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习进度05相关的知识,希望对你有一定的参考价值。
https://www.bilibili.com/video/av19956343?p=140
#昨天爬虫的补充
#返回当前正在爬取的URL地址 print(response.geturl()) #解码 url=r"https://www.baidu.com/s?ie=utf-8&f=3&rsv_bp=1&rsv_idx=1&tn=baidu&wd=ie%E6%80%8E%E4%B9%88%E6%B7%BB%E5%8A%A0%E8%AF%81%E4%B9%A6&rsv_pq=8707adb000078053&rsv_t=abc1PZW1FMJbfZnDjKVl3V7e3PQA9ULJJVfxsjJqh%2FUYqu1v9%2BmbkDSmazc&rqlang=cn&rsv_enter=1&rsv_dl=ih_5&rsv_sug3=1&rsv_sug1=1&rsv_sug7=001&rsv_sug2=1&rsp=5&rsv_sug9=es_1_1&rsv_sug4=2350&rsv_sug=9" newUrl =urllib.request.unquote(url) print(newUrl) #编码 newUrl2=urllib.request.quote(newUrl) print(newUrl2)
#爬取到的网页直接写入文件
import urllib.request #在执行过程中会产生一些缓存 response = urllib.request.urlretrieve("http://www.baidu.com",filename=r"E:/3.txt") #清除缓存 urllib.request.urlcleanup()
#模拟浏览器
import urllib.request import random import re #取消证书验证 import ssl ssl._create_default_https_context = ssl._create_unverified_context url="https://book.douban.com/" #模拟请求头 agentList=[ "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/73.0.3683.103 Safari/537.36" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0) Gecko/20100101 Firefox/6.0" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; SE 2.X MetaSr 1.0; SE 2.X MetaSr 1.0; .NET CLR 2.0.50727; SE 2.X MetaSr 1.0)" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; 360SE)" ] agentStr= random.choice(agentList) req = urllib.request.Request(url) req.add_header(‘User-Agent‘,agentStr) #发起请求 response = urllib.request.urlopen(req)
https://www.bilibili.com/video/av19956343?p=141
#设置超时
#如果网页长时间未响应,系统判断超时,无法爬取 for i in range(1,100): try: response = urllib.request.urlopen(req,timeout=0.5) print(len(response.read().decode("utf-8"))) except: print("请求超时,继续下一个爬取")
#HTTP请求
使用场景:进行客户端与服务器之间的消息传递时使用
GET:通过URL网址传递消息,可以直接在URL网址上添加要传递的信息
POST:可以向服务器提交数据,是一种比较流行的比较安全的数据传递方式
PUT:请求服务器存储一个资源,通常要指定存储的位置
DELETE:请求服务器删除一个资源
HEAD:请求获取对应的HTTP报头信息
OPTIONS:可以获取当前URL所支持的请求类型
https://www.bilibili.com/video/av19956343?p=142
以上是关于学习进度05的主要内容,如果未能解决你的问题,请参考以下文章