Peteryo01223 发表于 2021-5-17 09:34:45

Py 第52课:下载鱼C首页,并打印前300字节。

本帖最后由 Peteryo01223 于 2021-5-17 09:36 编辑

我的问题:为何我的尝试,这次行不通呀?请教高手们。
题目:下载鱼C工作室首页(http://www.fishc.com),并打印前三百个字节。
标准答案:

>>> import urllib.request
>>> response = urllib.request.urlopen('http://www.fishc.com')
>>> print(response.read(300))
b'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"\r\n\t"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r\n\r\n<!-- \r\n(c) 2011 \xc4\xbdubom\xc3\xadr Krupa, CC BY-ND 3.0\r\n -->\t\r\n\r\n<html xmlns="http://www.w3.org/1999/xhtml">\r\n\t<head>\r\n\t\t<meta http-equiv="content-type" content="text/html; charset=utf-8" />\r\n\t\t'

我的尝试:
import urllib.request

url = 'http://www.fishc.com'
proxy_support = urllib.request.ProxyHandler({'http':'8.208.91.118:81'})

opener = urllib.request.build_opener(proxy_support)

urllib.request.install_opener(opener)

response = urllib.request.urlopen(url)
html = response.read().decode('utf-8')

print(html)

wp231957 发表于 2021-5-17 09:43:38

把代理去掉

Peteryo01223 发表于 2021-5-17 09:52:46

wp231957 发表于 2021-5-17 09:43
把代理去掉

import urllib.request

url = 'http://www.fishc.com'

urllib.request.install_opener(url)

response = urllib.request.urlopen(url)
html = response.read().decode('utf-8')

print(html)

这么写行么?
目前还是报错
>>>
================== RESTART: C:/Users/user/Desktop/20210517b.py =================
Traceback (most recent call last):
File "C:/Users/user/Desktop/20210517b.py", line 7, in <module>
    response = urllib.request.urlopen(url)
File "C:\Users\user\AppData\Local\Programs\Python\Python38\lib\urllib\request.py", line 222, in urlopen
    return opener.open(url, data, timeout)
AttributeError: 'str' object has no attribute 'open'
>>>

wp231957 发表于 2021-5-17 10:05:26

Peteryo01223 发表于 2021-5-17 09:52
这么写行么?
目前还是报错

现在一般都用requests这个模块,很少有用urllib的了

Peteryo01223 发表于 2021-5-17 10:48:09

wp231957 发表于 2021-5-17 10:05
现在一般都用requests这个模块,很少有用urllib的了

我目前还在看旧视频,以前这个还都没学明白。

wp231957 发表于 2021-5-17 10:50:14

Peteryo01223 发表于 2021-5-17 09:52
这么写行么?
目前还是报错

print(requests.get("http://www.fishc.com").text[:300])

Peteryo01223 发表于 2021-5-17 11:12:40

wp231957 发表于 2021-5-17 10:50


试了试,不知为何,还是在报错。

wp231957 发表于 2021-5-17 12:06:14

Peteryo01223 发表于 2021-5-17 11:12
试了试,不知为何,还是在报错。

报啥错,你有pip installrequests吗

Twilight6 发表于 2021-5-17 13:32:53

Peteryo01223 发表于 2021-5-17 11:12
试了试,不知为何,还是在报错。



import urllib.request

url = 'http://www.fishc.com'

response = urllib.request.urlopen(url)
html = response.read().decode('utf-8')

print(html)

Peteryo01223 发表于 2021-5-17 13:52:16

Twilight6 发表于 2021-5-17 13:32


<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-touch-fullscreen" content="yes">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
<meta name="keywords" content="鱼C工作室|免
>>>

结果如上,没报错~

lyinglu 发表于 2021-5-17 14:45:05

1111111111111111

洋洋痒 发表于 2021-5-17 18:16:49

友情提示,当300字节里包含汉字里,你这句话就是一个错误了。因为utf-8编码一个汉字不止一个字节,你打印的是300个字符

Peteryo01223 发表于 2021-5-18 08:31:06

洋洋痒 发表于 2021-5-17 18:16
友情提示,当300字节里包含汉字里,你这句话就是一个错误了。因为utf-8编码一个汉字不止一个字节,你打印的 ...

好的
页: [1]
查看完整版本: Py 第52课:下载鱼C首页,并打印前300字节。