grea_great 2024-03-29 15:20 采纳率: 0%
浏览 188

爬虫请求被拒代码412(相关搜索:服务器)

爬虫请求服务器被拒,代码412

编写爬虫程序向B站发送requests请求,想爬取B站弹幕数据,请求被拒,返回代码412。
希望有码神出来指点一下刚学习爬虫 ^.^

import requests
import re

# url = 'https://comment.bilibili.com/1473879133.xml'
url = 'https://api.bilibili.com/x/v1/dm/list.so?oid=1473879133'
headers = \
    {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36'}
response = requests.get(url, headers)
response.encoding = 'utf-8'
print(response.text)
# {"code":-412,"message":"request was banned","ttl":1}
print(response.status_code)
# 412

  • 写回答

2条回答 默认 最新

  • GISer Liu 2024-03-30 04:25
    关注

    该回答引用自GPT-3.5,由博主GISer Liu编写:

    这个问题是由于B站对爬虫进行了限制导致的。B站对于爬虫的请求会进行一些检测,如果检测到是爬虫请求,就会返回412错误码,拒绝服务。
    要解决这个问题,你可以尝试以下方法:

    1. 更改请求头信息 :尝试修改User-Agent等请求头信息,使其看起来更像是正常浏览器发出的请求。例如,将User-Agent设置为常见浏览器的User-Agent。
      pythonCopy code
      headers = {
      'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36'
      }
      
    2. 使用代理 :通过使用代理服务器发送请求,可以隐藏真实的IP地址,降低被检测为爬虫的风险。
    3. 降低访问频率 :如果你的爬虫发送请求的频率过高,也容易被识别为爬虫。可以尝试降低请求的频率,增加访问的间隔时间。
    4. 模拟登录 :如果需要登录才能获取数据,可以尝试模拟登录获取cookie,并在请求中带上cookie。
    5. 查看B站的API文档 :如果B站提供了官方的API,建议查看官方文档,使用官方API获取数据,避免被封IP。
      请注意,尽管以上方法可以降低被检测为爬虫的风险,但并不能保证完全解决问题。在进行任何爬取操作时,请遵守网站的相关规定,避免对网站造成不必要的影响。

    如果该回答解决了您的问题,请采纳!如果没有,请参考以下方案进行修订

    用户答题指南

    评论

报告相同问题?

问题事件

  • 创建了问题 3月29日

悬赏问题

  • ¥15 curl 命令调用正常,程序调用报 java.net.ConnectException: connection refused
  • ¥20 关于web前端如何播放二次加密m3u8视频的问题
  • ¥15 使用百度地图api 位置函数报错?
  • ¥15 metamask如何添加TRON自定义网络
  • ¥66 关于川崎机器人调速问题
  • ¥15 winFrom界面无法打开
  • ¥30 crossover21 ARM64版本安装软件问题
  • ¥15 mymetaobjecthandler没有进入
  • ¥15 mmo能不能做客户端怪物
  • ¥15 osm下载到arcgis出错