def花 发表于 2020-8-21 11:19:40

爬虫报错

urllib.error.URLError: <urlopen error getaddrinfo failed>


import urllib.request

req = urllib.request.Request("http://placekittrn.com/g/500/600")
response = urllib.request.urlopen(req)

cat_img = response.read().decode('utf-8')

with open('cat_500_600.jpg','wb') as f:
    f.write(cat_img)

yhhpf 发表于 2020-8-21 11:24:52

应该是请求地址错误了

Twilight6 发表于 2020-8-21 11:25:26


网址错了是:placekitten,不是placekittrn

而且代码中 decode 需要去掉,参考代码:

import urllib.request

req = urllib.request.Request("http://placekitten.com/g/500/600")
response = urllib.request.urlopen(req)

cat_img = response.read()

with open('cat_500_600.jpg','wb') as f:
    f.write(cat_img)

Hoiste 发表于 2020-8-21 11:27:45

这种错误可能是网络问题或者被网页辨别出是爬虫被拒绝了,如果能确认代码上没问题的话就往下学吧。

def花 发表于 2020-8-21 11:28:16

Twilight6 发表于 2020-8-21 11:25
网址错了是:placekitten,不是placekittrn

而且代码中 decode 需要去掉,参考代码:

为什么去掉,不转译吗
不去掉报错
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte

Twilight6 发表于 2020-8-21 11:29:11

本帖最后由 Twilight6 于 2020-8-21 11:31 编辑

def花 发表于 2020-8-21 11:28
为什么去掉,不转译吗

图片文件是二进制格式的,你在转成 utf-8 肯定写入出错

def花 发表于 2020-8-21 11:33:33

Twilight6 发表于 2020-8-21 11:29
图片文件是二进制格式的,你在转成 utf-8 肯定写入出错

那假如一个网页有图片有文字怎么办,转不转译

Twilight6 发表于 2020-8-21 11:35:00

def花 发表于 2020-8-21 11:33
那假如一个网页有图片有文字怎么办,转不转译



噗,图片就是图片,图片里面有文字也还是图片啊

def花 发表于 2020-8-21 11:51:40

Twilight6 发表于 2020-8-21 11:35
噗,图片就是图片,图片里面有文字也还是图片啊

我的意思是图片文字分开,既有图片又有文字在一起

Twilight6 发表于 2020-8-21 12:10:58

def花 发表于 2020-8-21 11:51
我的意思是图片文字分开,既有图片又有文字在一起

噢噢,是我理解错了,也用二进制就行
页: [1]
查看完整版本: 爬虫报错