尋找生活小知識,讓美好生活更加便捷
当前位置:首页 » 原因查询 » 爬虫如何判断爬取失败的原因
扩展阅读
怎样介绍名人人物ppt模板 2025-05-28 03:29:50
逝者的衣服怎样穿 2025-05-28 02:31:31

爬虫如何判断爬取失败的原因

发布时间: 2022-05-07 10:58:09

1. 为什么用requests爬取不了内容

爬不到内容有几种可能,你可以对照着检查看看:

  1. 首先先确定你直接请求这个链接是可以返回正确数据,不需要添加其他请求参数,cookie,header这些。

  2. 看看这个请求响应码是否正常的的200。

  3. 如果请求响应正常(响应码200)并且返回了数据,你先看看这个数据是否有什么提示信息说你的请求不符合要求之类的。

  4. 你要确定你请求的数据是直接在静态HTML页面上,还是通过动态ajax请求二次请求在填充到页面上的,如果是通过ajax请求的,你直接获取页面数据肯定是没有的,这时你应该找到这个ajax请求,模拟发送这个请求获取数据。

  5. 现在很多网站都有反爬虫功能,要看看是否网站反爬虫的原因。简单测试就是换个IP或是搞个代理IP在发送一次请求试试。

2. python爬虫返回错误

你的脚本里写的有点问题,正常情况下不应该直接使用except来捕获所有错误,因为这样你根本看不到错误的原因,根据你图片里那爬取异常四个字,谁知道错误原因呢?正常的代码应该是这样写:
except Exception as e:
print("错误原因是:", e)
这样才能把系统给发送的异常信息显示出来,根据异常信息才能判断是哪一步执行出错了。
根据你图片中的代码信息,很有可能是你在链接中给出的参数出错了,就是那个keyword值。你可以把异常结果发出来就能看的比较明显了。
不知道我讲清楚了没有,希望可以帮助到你。

3. python爬虫为什么打开一些网页会几率失败

那是你的爬虫程序被反爬了,现在的网页反爬机制五花八门,有UA,有cookie,有时间戳等等,找到网页加密规律,调整代码再试试吧!

4. python爬取页面数据错误,连续爬很多页数。我主要改变的是post里面的参数pageno

给你贴一下我前一段时间回答的类似问题,用的soup,还有一个用的正则就不贴了,手机不太方便,如下。
import beautifulsoup
import urllib2

def main():

userMainUrl = "你要抓取的地址"
req = urllib2.Request(userMainUrl)
resp = urllib2.urlopen(req)
respHtml = resp.read()
foundLabel = respHtml.findAll("label")

finalL =foundLabel.string

print "biaoti=",finalL
if __name__=="__main__":

main();

PS:如果不会改的话追问一下,回头我用电脑给你写一份

5. python爬虫失败

解码的时候记得加入

z_data=data.decode('UTF-8','ignore')

ignore是忽略错误解码而不会报错

因为什么啊

现在写前端的兄弟姐妹啊

怎么方便用什么码写

造成一个前端或者后端存在几种编码机制

当你utf-8遇到不是这个码的时候就会报错啦

6. python 爬虫,爬不到数据

那数据是动态的,是通过js动态添加上去的,所以获取不到。不仅是通过js动态添加的。而且从服务器获取的数据是加密过的,然后再解密,最后张渲染到页面上。

7. java 爬取网页时爬取不全是什么原因

这种是用js实现的。所以后面的内容实际上是动态生成的,网络爬虫抓取的是静态页面。 至于解决办法,网上有几种: 一种是使用自动化测试工具去做,比如selenium,可以模拟点击等操作,但是这个其实和爬虫还是有很大区别的。

8. python爬虫无法爬取网页完整内容

9. python爬虫爬取不出信息

Python爬虫程序本身没有问题,但是却爬取不了数据主要原因如下:

1.对方有反爬程序
几乎所网站为了防止一些恶意抓取,会设置反爬程序,你会发现明明很多数据显示在浏览器上,但是却抓取不出来。
2.伪装方式没有绕过目标网站反爬
网站都有反爬虫机制,防止爬取数据,爬虫想要爬取数据,就需要隐藏自身的身份,伪装成用户的身份进行访问,如果没有伪装好,被检测到爬虫,也是被会限制的。比如请求头没有设置好,Cookie问题等等。
3.IP被限制
爬虫除了IP所有数据都可以伪装,当你的IP访问次数过多之后,就会被限制住,再也无法访问了。这个时候就需要带入ip代理池了。

10. python3 爬取图片异常的原因

我们在下载文件时,一会会采取urlretrieve或是requests的get方式,
from urllib.request import urlretrieve
urlretrieve(self.url, filename="xxx.png")
但对于连续下载,各个文件保存是需要时间的,而程序运行永运是快于存储的,我怀疑这是水管里流水速度与缸的大小不合适的原因,那可以试试下面这种方式:
r = requests.get(url, stream=True)
with open(local_filename, 'wb') as f:
for chunk in r.iter_content(chunk_size=1024):
if chunk: # filter out keep-alive new chunks
f.write(chunk)
f.flush()