python爬虫(3)

目录

十,将cookie对象保存为本地文件并读取

十一,URLError的使用

十二,requests库的使用

1,pip install requests

2,requests请求方法大全

3,requests的get方法使用

4,requests的post方法使用

5,requests代理proxy的使用方法

6,requests中请求方法的timeout参数

7,requests中session自动保存cookie

8,requests中忽略SSL验证

9,requests中response对象的一些方法简介


十,将cookie对象保存为本地文件并读取

from urllib.request import Request, build_opener, HTTPCookieProcessor
from fake_useragent import UserAgent
from http.cookiejar import MozillaCookieJar

url = 'https://www.baidu.com/s?wd=python'
headers = {
    'User-Agent': UserAgent().chrome,
}
def let_cookie_to_file():
    cookie = MozillaCookieJar()  # 创建一个cookie对象,他会自动记录各种cookie信息
    req = Request(url=url, headers=headers, )
    opener = build_opener(HTTPCookieProcessor(cookiejar=cookie))
    resp = opener.open(req)
    cookie.save('cookie.txt', ignore_discard=True, ignore_expires=True)  # 保存cookie对象
    print(resp.getcode())
    

def get_cookie_from_file():
    cookie = MozillaCookieJar()  # 创建一个cookie对象
    cookie.load('cookie.txt', ignore_discard=True, ignore_expires=True)
    req = Request(url=url, headers=headers, )
    opener = build_opener(HTTPCookieProcessor(cookiejar=cookie))
    resp = opener.open(req)
    print(resp.getcode())

if __name__ == '__main__':
    # let_cookie_to_file()
    get_cookie_from_file()

十一,URLError的使用

        URLError本质上是一个异常类。产生URLError的原因有:主机没有联网,服务器不存在,找不到服务器(实际上服务器存在)等。

from urllib.request import urlopen, Request
from fake_useragent import UserAgent
from urllib.error import URLError

url = 'http://gzsx.cooco.net.cn/tweest/'
url = 'http://jccndk.com'
headers = {
    'User-Agent': UserAgent().chrome,
}
req = Request(url=url, headers=headers)
try:
    resp = urlopen(req)
    print(resp.read().decode())
except URLError as e:
    print(e)
    if e.args:
        print(e.args[0].errno)
    else:
        print('错误404')

十二,requests库的使用

1,pip install requests

        由于requests库是第三方库,需要pip安装。

2,requests请求方法大全

3,requests的get方法使用

例子1:

import requests
from fake_useragent import UserAgent

headers = {
    'User-Agent': UserAgent().chrome,
}


def no_args():
    url = 'https://hao.360.com/?h_lnk'
    resp = requests.get(url=url)
    print(resp.text)


def has_args(args: dict):
    url = 'https://www.baidu.com/?'
    resp = requests.get(url=url, params=args, headers=headers)
    print(resp.text)


if __name__ == '__main__':
    # no_args()
    has_args({'wd': 'python'})

4,requests的post方法使用

例子1:

import requests
from fake_useragent import UserAgent

headers = {
    'User-Agent': UserAgent().chrome,
}

args = {
    'searchword': '卫生'
}

def get():
    url = 'https://www.21wecan.com/rcwjs/searchlist.jsp'
    resp = requests.post(url=url, headers=headers, data=args)
    print(resp.text)

if __name__ == '__main__':
    get()

5,requests代理proxy的使用方法

例子1:

import requests
from fake_useragent import UserAgent

url = 'http://httpbin.org/get'
headers = {
    'User-Agent': UserAgent().chrome,
}
proxy = {
    # 格式:'type':'type://username:password@ip:port'
    'http': 'http://183.239.38.216:9091'
}
resp = requests.get(url=url, headers=headers, proxies=proxy)
print(resp.text)

6,requests中请求方法的timeout参数

        超过这个参数,则会报错。

resp = session.get(url=url, headers=headers, params={'wd': 'python'},timeout=5)

7,requests中session自动保存cookie

        session的作用是保持一个持续的会话,在内存当中记录一个网址的cookie,以供后续代码使用。

import requests

s = requests.Session()
# 用session对象发出get请求,设置cookies
resp = s.get('http://httpbin.org/cookies/set/sessioncookie/123456789')
print(resp.text)

8,requests中忽略SSL验证

        细节在这里。

import requests
import warnings
from requests.packages import urllib3

# 方式一:关闭警告
urllib3.disable_warnings()
warnings.filterwarnings("ignore")

# 方式二,关闭证书,verify=False
res = requests.get(url="https://www.12306.cn",verify=False)  #不验证证书,报警告,返回200
print(res.content.decode("utf-8"))


s = requests.Session()
# 用session对象发出get请求,设置cookies
resp = s.get('http://httpbin.org/cookies/set/sessioncookie/123456789')
print(resp.text)

9,requests中response对象的一些方法简介

        获取并保存cookie信息,需要使用response.cookie属性,他是一个字典。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值