爬虫学习笔记一:request

原始request请求模式

1、直接通过url地址获取请求响应(www.baidu.com)

    导入引用包:import urllib.request

    respone=urllib.request.urlopen(url)

2、读取响应里的数据(直接读取数据为二进制,通过.decode()方法进行转换)

    respone.read().decode("utf-8")

3、当url地址含有参数时("http://www.baidu.com/s?ie=utf8&wd=美女") from urllib import parse

    字典参数时params={"wd":"中文"},要进行转换

    url_parmas=urllib.parse.urlencode(params)

    拼接url地址

    finnal_url=url+url_parmas

    将包含汉子网址进行转换

    new_url=urllib.parse.quote(finnal_url,safe=string.printable)

    通过urllib.request.urlopen(new_url)获取响应数据

4、在url地址中添加响应头

    请求头信息 header={"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0) Gecko/20100101 Firefox/6.0","key":"value"}

    添加请求头信息:request=urllib.request.Request(url,headers=header)

    添加指定请求头:request=urllib.request.Request(url),request.add_header("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0) Gecko/20100101 Firefox/6.0")

    通过urllib.request.urlopen(request)获取响应数据

5、添加IP代理

    系统urllib.request.urlopen()不支持ip代理,要自建添加

    代理IP格式:免费写法 proxy={"http":"117.95.214.13:9999"}

                收费写法:proxy={"http":"username:pwd@117.95.214.13:9999"} 或者

    创建代理处理器:proxy_handler=urllib.request.ProxyHandler(proxy)

    创建opener:proxy_opener=urllib.request.build_opener(proxy_handler)

    发送代理IP请求获取响应:respones=proxy_opener.open(url)

6、付费添加IP代理

    创建密码管理器:pwd_manage=urllib.request.HTTPPasswordWithDefaultRealm()

    添加用户名密码:pwd_manage.add_password(None,IP,user,pwd)

    创建验证代理IP处理器:handler_auth_proxy=urllib.request.ProxyBasicAuthHandler(pwd_manage)

    创建opener:opener=urllib.request.build_opener(handler_auth_proxy)

    发送请求获取响应数据:response=opener(url)

7、cookiejar 使用 from http import cookiejar

    通过post请求自动保存cook,下次直接带cook请求

    构建用户参数 login_post={

                "username": "715512020@qq.com",

                "pwd": "341621syl@*",

                "formhash": "69AE86D054",

                "backurl": "https%3A%2F%2Fwww.yaozh.com%2F"

    }

    请求头参数

    header={

        "User-Agent": "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.81 Mobile Safari/537.36"

    }

    添加用户登录参数:login_parse=urllib.request.urlencode(login_post).encode("utf-8")

    添加请求头及参数:request=urllib.request.Request(url,headers=header,data=login_parse)

    创建cookjar对象实例自动保存cook

    cook_jar=cookjar.CookJar()

    创建cookie处理器对象

    cook_handler=urllib.request.HTTPCookieProcessor(cook_jar)

    创建opener:cook_opener=urllib.request.build_opener(cook_handler)

    发送请求:response=cook_opener(request)

    cook信息已自动保存到cook_jar对象实例中

    再次访问网站时通过cook

    cook_opener(url)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。