码迷,mamicode.com
首页 > 其他好文 > 详细

学习进度05

时间:2020-02-06 01:39:25      阅读:95      评论:0      收藏:0      [点我收藏+]

标签:请求头   trident   col   amp   消息传递   header   通过   abc   安全   

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

标签:请求头   trident   col   amp   消息传递   header   通过   abc   安全   

原文地址:https://www.cnblogs.com/kt-xb/p/12267283.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!