Python爬虫:为什么你爬取不到网页数据

这篇具有很好参考价值的文章主要介绍了Python爬虫:为什么你爬取不到网页数据。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言:

之前小编写了一篇关于爬虫为什么爬取不到数据文章(文章链接为:https://liuze.blog.csdn.net/article/details/105965562),但是当时小编也是胡乱编写的,其实里面有很多问题的,现在小编重新发布一篇关于爬虫爬取不到数据文章,希望各位读者更加了解爬虫。

Python爬虫:为什么你爬取不到网页数据

1. 最基础的爬虫

通常编写爬虫代码,使用如下三行代码就可以实现一个网页的基本访问了。

from urllib import request

rsp = request.urlopen(url='某某网站')
print(rsp.read().decode('编码'))

或者

import requests

rsp = requests.get(url='某某网站')
print(rsp.text)

但是,有的网站你使用上述方式访问时,有可能出现一下情况:

  1. 直接报错;
  2. 没有报错,但是给出相应的响应码,如403;
  3. 没有报错,但是输出信息没有在浏览器上看到的那么多(这有可能是网页使用了动态加载的原因)。
2. 添加请求头的爬虫

上述讲到的三种情况,怎样解决呢?基本方式是添加一个请求头(请求头的字段通常只需添加user-agent字段即可,用来模拟浏览器访问;然而有的网站用Python爬虫来访问时,可能还要添加其他字段,最好是把这个网页所有请求头字段信息全部添加上;有的网页全部请求头字段信息全部添加上,然而也访问不到数据,这种情况小编也没有什么好的解决办法,不知道使用selenium模块直接操控浏览器是否可以,没有试过)。

  1. 如用urllib模块来访问bilibili网站时会报错,如下:
    Python爬虫:为什么你爬取不到网页数据
    但是添加请求头之后,就可以正常访问了。
    Python爬虫:为什么你爬取不到网页数据
    参考代码如下:
from urllib import request

url = 'https://www.bilibili.com/'

headers = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3877.400 QQBrowser/10.8.4507.400'
}

req = request.Request(url=url,headers=headers)
rsp = request.urlopen(req)
print(rsp.read().decode('utf-8'))


  1. 如用urllib模块来访问百度网站时会出现如下情况:
    Python爬虫:为什么你爬取不到网页数据
    很显然,这个网页不可能就这么点代码标签,添加一个请求头之后,如下:
    Python爬虫:为什么你爬取不到网页数据
3. 动态网页加载的数据

提到动态网页,读者首先可以去看看小编的这篇文章:Python爬虫:什么是静态网页(数据),什么是动态网页(数据),小编学习过后端知识,大体知道为什么用上述方式访问不到相应的数据。why(大概是这样吧!也有可能讲的不对,希望读者指正[如果有错误的话],一般而言,我们用爬虫爬取得到的数据是当前网页已经完全加载的,然而动态网页使用了ajax技术,而执行者一段ajax代码好像是网页完全加载之后才执行的,因此你用爬虫爬取不到那部分数据。)
此时,你有两种解决方式:

  1. 找到这个ajax的相关网页链接,访问这个链接,从而得到相关数据;
  2. 直接使用selenium这个模块,操作浏览器访问。

如果读者使用第1种解决方式,有可能你访问的那个链接一些参数是加密的,这时你需要利用js断点(使用谷歌浏览器),找到那段加密参数加密之前的数据信息和相关的一些js加密函数,找到加密之前的数据信息的组合规则。关于js加密函数,如果简单的话,直接用Python模拟出加密效果即可;如果复杂的话,最好使用execjs或者其他Python模块下的一些方法去执行这些js加密函数。
上述关于使用第1种解决方式,小编过去做过的有Python爬虫爬取酷狗音乐、网易云音乐、斗鱼视频等。有兴趣的读者可以去看看小编的爬虫专栏,链接为:https://blog.csdn.net/qq_45404396/category_9687415.html,当然,有一些文章发表在博客园,博客主页为:https://www.cnblogs.com/liuze-2/

4. 总结

有的读者也许会问,如果我ip封掉了,怎样爬取网页数据,其实,使用相关ip代理即可,读者可以去看看小编的爬虫专栏,里面有讲ip代理的相关文章。另外,还有一些高大上的反爬措施,小编并不是很了解,就不在这一一赘述了,如果未来小编真的了解到了,到时候再在本文章后加上吧!文章来源地址https://www.toymoban.com/news/detail-454702.html

到了这里,关于Python爬虫:为什么你爬取不到网页数据的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 爬虫为什么需要ip

    爬虫需要使用爬虫ip主要是为了解决以下问题: 1、反爬虫机制:许多网站会设置反爬虫机制来防止爬虫程序的访问,例如限制IP地址的访问频率、检测访问来源等。使用爬虫ip可以绕过这些限制,使得爬虫程序更难被检测到。 2、访问限制:有些网站可能会对某些地区的IP地址

    2024年02月02日
    浏览(50)
  • 爬虫时为什么需要代理?

    我们都知道爬虫时是需要代理地址介入的。使用代理可以隐藏你的真实IP地址,防止被网站封禁或限制访问。此外,代理还可以帮助你绕过地理限制,访问被封锁的网站或服务。但是请注意,使用代理也可能会带来一些风险,例如代理服务器可能会记录你的访问数据,或者代

    2024年02月06日
    浏览(49)
  • Socks IP轮换:为什么是数据挖掘和Web爬取的最佳选择?

            在数据挖掘和Web爬取的过程中,IP轮换是一个非常重要的概念。数据挖掘和Web爬取需要从多个网站或来源获取数据,而这些网站通常会对来自同一IP地址的请求进行限制或封锁。为了避免这些问题,数据挖掘和Web爬取过程中需要使用Socks IP轮换技术。在本文中,我们

    2024年02月14日
    浏览(35)
  • 为什么网页打不开? 网页打不开的原因与解决办法小结

    下面分析下引起此种故障的原因及解决方法:        部分网站为什么网页打不开的故障可能是有时候由于域名重新解析过后,但在本机访问域名的时候还是指向原来的IP,这主要是因为本地dns缓存导致的,因为你在改域名解析之前访问过这个域名。解决方法就是更新DNS!一种

    2024年02月05日
    浏览(46)
  • 爬虫为什么需要 HTTP 代理 IP?

    前言 爬虫在互联网数据采集、分析和挖掘中扮演着至关重要的角色,但是对于目标网站而言,频繁的爬虫请求可能会对其服务器产生不小的负担,严重的情况甚至会导致网站崩溃或者访问受限。为了避免这种情况的发生,同时也为了保护客户端的隐私和安全,爬虫使用HTTP代

    2024年02月07日
    浏览(42)
  • spring中,为什么前端明明传了值,后端却接收不到

    在进行前后端的联调时,有时候会出现,前端明明传了值,后端接口却接收不到的情况,这种情况常常让人很苦恼,然后就会去仔细对比前后端的参数单词是不是对应上了,也会去检查是不是前端的请求参数格式有问题,又或者是后端接口接收的参数格式有问题,一通检查对

    2024年02月03日
    浏览(44)
  • 为什么区域中找不到无线网络 如何解决区域中找不到无线网络的问题

    区域中找不到无线网络解决办法,无线网朋友这里可以找到答案。 电脑无线上网提示“区域中找不到无线网络”怎么办? 案例分析一: 笔记本电脑之前好好的,突然不能使用无线网络了,提示“区域中找不到无线网络”。主要有如下三个问题: 一、event log被360禁用了,启用

    2024年02月06日
    浏览(62)
  • 小米盒子为什么搜不到电视家?电视安装包解析错误解决方案

    不少的朋友在小米电视盒子上安装了美家市场软件商店后,却发现在市场里面没法安装想要的电视盒子直播软件,这是怎么回事呢?其实大部分原因是电视盒子机制的问题限制了安装,导致部分品牌电视盒子装软件时会弹出“无法安装”的提示。 本身厂商的原因不好解决,但

    2024年02月09日
    浏览(46)
  • python爬虫 爬取网页图片

    目录 一:爬虫基础 二:安装html解析的python工具 三:爬取网页图片 爬虫基本过程: 1.请求标头 headers 2.创建一个会话 requests.Session 3.确定请求的路径 4.根据路径获取网页资源(HTML文件) 5.解析html文件BeautifulSoup div a 标签 获取对应的图片 6.建立网络连接进行下载  创建出下载的图

    2024年02月02日
    浏览(39)
  • pycharm创建的虚拟环境为什么用conda env list命令查询不到?

    问题描述:pycharm创建的虚拟环境为什么用conda env list命令查询不到。 pycharm开发环境可以创建虚拟环境,目的是为隔绝其他环境种库带来的版本干扰,但是发现一个问题,无论是在windows终端、anaconda终端、Pycharm开发环境中的终端使用conda env list命令都查不到venv环境。

    2024年02月10日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包