首页 > 其他分享 > 爬取url遇到302跳转问题怎么解决?

爬取url遇到302跳转问题怎么解决?

时间:2023-02-14 17:06:50浏览次数:51  
标签:http url 302 cookie https 跳转 requests 页面

最近在做爬虫项目遇到一个问题,这里简单的描述下让大家帮忙看下。目标网站需要完成一一系列登录操作,经过抓包测试只需要使用简单的post请求后收到的回包中包含cookie信息,因此可以据此完成登录。程序设计思路为发送求到登录验证页面,获取返回包包头中的cookie然后以此cookie再完成其他请求。

然而问题是在开发测试的时候却始终获取不到返回包包头中的cookie信息。header中始终为空。查阅python中的requests库的手册后发现,导致这个问题的原因主要是requests包在处理请求时,当遇到302状态时,会自动跳转到对应的页面。,然后我在scrapy的setting里面加上了
HTTPERROR_ALLOWED_CODES = [302]
然后就变成了这样:
2023-2-13 13:42:09 [scrapy.core.engine] DEBUG: Crawled (302) <GET https://m.baidu.com/s?word=%e7%b2%a4%e8%af%ad+%e4%b8%8b%e8%bd%bd&pn=90> (referer: https://m.baidu.com/s?word=%e7%b2%a4%e8%af%ad+%e4%b8%8b%e8%bd%bd&pn=90)
但是这样爬到的是没有数据的,这里我有也尝试过换IP去解决,并且在网上寻找了评价比较好,靠谱的亿牛云代理,程序也加了代理并运行了,代码如下:

#! -*- encoding:utf-8 -*-

import requests
import random

# 要访问的目标页面
targetUrl = "http://httpbin.org/ip"

# 要访问的目标HTTPS页面
# targetUrl = "https://httpbin.org/ip"

# 代理服务器(产品官网 www.16yun.cn)
proxyHost = "t.16yun.cn"
proxyPort = "31111"

# 代理验证信息
proxyUser = "username"
proxyPass = "password"

proxyMeta = "http://%(user)s:%(pass)s@%(host)s:%(port)s" % {
"host" : proxyHost,
"port" : proxyPort,
"user" : proxyUser,
"pass" : proxyPass,
}

# 设置 http和https访问都是用HTTP代理
proxies = {
"http" : proxyMeta,
"https" : proxyMeta,
}


# 设置IP切换头
tunnel = random.randint(1,10000)
headers = {"Proxy-Tunnel": str(tunnel)}



resp = requests.get(targetUrl, proxies=proxies, headers=headers)

print resp.status_code
print resp.text

标签:http,url,302,cookie,https,跳转,requests,页面
From: https://blog.51cto.com/u_13789715/6057302

相关文章

  • 20230214 T3 绝对伏特加(vodka)
    Vodka题目描述Alan喝了假的绝对伏特加,想问你一个问题:Alan在玩骰子游戏,Alan会玩\(n\)轮骰子,每轮的数值在\([1,K]\)中随机出现。记\(a_i\)表示\(n\)轮投掷中,......
  • Vue3使用vue-router如何实现路由跳转与参数获取
    //跳转传参import{useRouter,useRoute}from'vue-router';constrouter=useRouter()constroute=useRoute()//新开页functionjump(id){consturl=router.......
  • 【老王读SpringMVC-3】根据 url 是如何找到 controller method 的?
    前面分析了request与handlermethod映射关系的注册,现在再来分析一下SpringMVC是如何根据request来获取对应的handlermethod的?可能有人会说,既然已经将request......
  • webpack4基本使用和url-loader压缩图片
    执行npminit-y,创建package.json文件最基本的配置文件entry:入口文件output:出口,出口里面添地址,和导出的包的名字mode是模式默认production,可以选择为development,也......
  • Java 通过get post 请求url
    .已获取小程序的access_token为例,通过Get请求url1importcom.alibaba.fastjson.JSONObject;23StringwechatUrl="https://api.weixin.qq.com/cgi-bin/tok......
  • 20230210 组会学习
    LLFormer该方法主要是基于Restormer的改进,主要改进有以下三点注意力机制改为了轴向注意力,降低了计算复杂度FFN部分由原来的单门控改成了双门控机制,增加了交互加入......
  • 20230210组会论文学习心得
    1、【AAAI2023】Ultra-High-DefinitionLow-LightImageEnhancement:ABenchmarkandTransformer-BasedMethod论文:https://arxiv.org/abs/2212.11548代码:https://git......
  • 位图:爬虫URL去重最佳方案
    网页爬虫,解析已爬取页面中的网页链接,再爬取这些链接对应网页。而同一网页链接有可能被包含在多个页面中,这就会导致爬虫在爬取的过程中,重复爬取相同的网页。1如何避免重复爬......
  • 使用精灵组对精灵成员编队 pygame 230213
    定义精灵成员定义了两个精灵成员说明:Background类是精灵类的子类定义精灵组精灵组添加精灵语法:精灵组.add(精灵成员)批量更新数据语法:精灵组.update()说明:目的是让所有的精灵......
  • The Protocol-relative URL|协议相对网址
    前言最近基于https的网站,引用http网站的资源文件出现了报错,最初的解决办法是添加两套引入,也就是http、https都写上<scriptsrc="http://a.js"></script><script......