python爬虫学习7

python爬虫学习7

目录

  • opener

    • opener位于urlopen中,有时我们不使用urlopen()方法,而是直接构造opener。

python爬虫学习7

  • opener的构造
import urllib.request

url = 'https://www.baidu.com'
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36 SLBrowser/7.0.0.12151 SLBChan/11'}

# 构建请求对象
req = urllib.request.Request(url,headers=headers)

# 获取opener对象
opener = urllib.request.build_opener()

resp = opener.open(req)
print(resp.read().decode('utf-8'))

运行结果:
python爬虫学习7

  • 使用Cookie

    • 获取网站Cookie
    # 使用Cookie需要用到相关的 Handler。
    
    import http.cookiejar,urllib.request
    
    url = 'https://www.baidu.com'
    headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36 SLBrowser/7.0.0.12151 SLBChan/11'}
    req = urllib.request.Request(url,headers=headers)
    
    # 声明CookieJar对象
    cookie = http.cookiejar.CookieJar()
    
    # 利用 HTTPCookieProcessor 构件一个 Handler
    handler = urllib.request.HTTPCookieProcessor(cookie)
    
    # 构件 opener
    opener = urllib.request.build_opener(handler)
    resp = opener.open(req)
    
    for i in cookie:
        print(i.name+'='+i.value)
        
    
    

    运行结果:
    python爬虫学习7

    • 保存cookie到磁盘
    import http.cookiejar,urllib.request
    
    filename = 'cookie.txt'
    url = 'https://www.baidu.com'
    
    # 获取 cookie
    def get_cookie():
        # 实例化一个 MozillaCookieJar
        cookie = http.cookiejar.MozillaCookieJar(filename)
        # 创建 Handler
        handler = urllib.request.HTTPCookieProcessor(cookie)
        # 构件 opener
        opener = urllib.request.build_opener(handler)
        # 发送请求
        resp = opener.open(url)
        # 存储
        cookie.save()
    
    if __name__ == '__main__':
        get_cookie()
    

    运行后可以看到当前目录下出现了一个名为cookie.txt的文件,打开后内容如下:

python爬虫学习7

未完,明日继续,,,

上一篇:会话技术从使用到细节的处理


下一篇:拉完代码后Maven本地依赖找不到