Python爬虫之网络请求

作者:长得丑就要多读书 时间:2023-10-29 21:28:08 

1.IP代理

某些网站会检测一段时间内某IP的访问次数,若访问次数过多会禁止访问,这时需要设置一些代理服务器,每隔一段时间换一个代理。IP代理的分类:

  • ①透明代理:目标网站可以得知使用了代理以及源IP地址,显然这不符合要求;

  • ②匿名代理:目标网站知道使用了代理,但不知道源IP地址;

  • ③高匿代理:最保险的方式,目标网站既不知道使用了代理,也不知道源IP地址。

2.Cookie

解决http的无状态性,第一次向服务器发送请求时,服务器生成Cookie作为请求头并储存到浏览器中;浏览器再次发送请求时将携带Cookie信息。

import urllib.request
from http import cookiejar
filename = 'cookie.txt'
#获取Cookie
def get_cookie():
    #实例化一个MozillaCookieJar用于存储cookie
    cookie = cookiejar.MozillaCookieJar(filename)
    #创建handler对象
    handler = urllib.request.HTTPCookieProcessor(cookie)
    #创建opener对象
    opener = urllib.request.build_opener(handler)
    #请求网址
    url = 'https://tieba.baidu.com/index.html?traceid=#'
    resp = opener.open(url) #发送请求
    #存储cookie文件
    cookie.save()
 
#读取cookie
def use_cookie():
    #实例化MozillaCookieJar
    cookie = cookiejar.MozillaCookieJar()
    #加载cookie文件
    cookie.load(filename)
    print(cookie)
 
get_cookie()
use_cookie()

3.异常处理 

①urllib.error.URLError:用于捕获由urllib.request产生的异常,使用reason属性返回错误原因

import urllib.request
import urllib.error
 
url = 'http://www.google.com'
try:
    resp = urllib.request.urlopen(url)
except urllib.error.URLError as e:
    print(e.reason)

输出结果:

[WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。

②urllib.error.HTTPError:用于处理HTTP与HTTPS请求的错误,

有三个属性:

  • code:请求返回的状态码

  • reason:返回错误的原因

  • headers:请求返回的响应头信息

import urllib.request
import urllib.error
 
url = 'https://movie.douban.com/'
try:
    resp = urllib.request.urlopen(url)
except urllib.error.HTTPError as e:
    print('原因:',e.reason)
    print('响应状态码:',str(e.code))
    print('响应头数据:',e.headers)

Python爬虫之网络请求

来源:https://blog.csdn.net/qq_40523659/article/details/122520797

标签:Python,爬虫,网络,请求
0
投稿

猜你喜欢

  • python误差棒图errorbar()函数实例解析

    2023-12-14 22:39:49
  • Python confluent kafka客户端配置kerberos认证流程详解

    2021-02-25 10:47:31
  • python匹配两个短语之间的字符实例

    2022-08-31 04:49:57
  • CentOS 6、7下mysql 5.7 详细安装教程

    2024-01-24 18:00:47
  • python线程池threadpool实现篇

    2022-03-21 19:37:34
  • Vuejs 组件——props数据传递的实例代码

    2024-05-22 10:43:03
  • vue学习教程之带你一步步详细解析vue-cli

    2024-05-09 10:52:46
  • Vue利用mockjs编写假数据并应用的问题记录

    2024-04-28 09:27:31
  • SQL SERVER数据库表记录只保留N天图文教程

    2024-01-29 06:34:21
  • 详解PHP中的mb_detect_encoding函数使用方法

    2023-11-14 19:48:45
  • 浅谈python中scipy.misc.logsumexp函数的运用场景

    2023-11-10 17:10:56
  • Keras中的多分类损失函数用法categorical_crossentropy

    2023-06-23 12:25:37
  • python opencv对图像进行旋转且不裁剪图片的实现方法

    2023-03-12 02:40:09
  • 人工智能——K-Means聚类算法及Python实现

    2022-02-04 19:04:43
  • Python函数式编程

    2023-12-29 10:58:46
  • Python标准库os库的常用功能解析

    2021-03-06 12:32:51
  • 教你如何在SQL Server数据库中加密数据

    2009-09-10 14:49:00
  • Python函数返回值实例分析

    2022-06-23 06:59:07
  • 利用Opencv实现图片的油画特效实例

    2022-01-26 14:31:59
  • vue实现手机号码的校验实例代码(防抖函数的应用场景)

    2024-05-29 22:19:44
  • asp之家 网络编程 m.aspxhome.com