y116114 发表于 2020-10-13 23:00:39

简单爬取网页信息

本帖最后由 y116114 于 2020-10-13 23:41 编辑

import urllib.request
response = urllib.request.urlopen("https://www.youzack.com")
html = response.read()
print(html)

Traceback (most recent call last):
File "E:\Python程序例子\111.py", line 2, in <module>
    response = urllib.request.urlopen("https://www.youzack.com")
File "E:\Python\lib\urllib\request.py", line 222, in urlopen
    return opener.open(url, data, timeout)
File "E:\Python\lib\urllib\request.py", line 531, in open
    response = meth(req, response)
File "E:\Python\lib\urllib\request.py", line 640, in http_response
    response = self.parent.error(
File "E:\Python\lib\urllib\request.py", line 569, in error
    return self._call_chain(*args)
File "E:\Python\lib\urllib\request.py", line 502, in _call_chain
    result = func(*args)
File "E:\Python\lib\urllib\request.py", line 649, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 403: Forbidden


为啥按照爬虫第一课视频里讲的代码不能爬取这个网站信息啊?一脸懵逼。。。。

bonst 发表于 2020-10-14 01:02:06

有可能是地址错误,你用电脑输入进去看看能不能访问,或者换个网址,比如百度

疾风怪盗 发表于 2020-10-14 01:25:26

这样就可以了。。。。。。。
这个库我没用过,网上找的代码,一般现在都用resquests库吧,比较方便

import urllib.request

url="https://www.youzack.com"
headers={'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36'}
req=urllib.request.Request(url=url,headers=headers)
response=urllib.request.urlopen(req)
html = response.read().decode("utf-8")
print(html)

y116114 发表于 2020-10-14 13:38:43

疾风怪盗 发表于 2020-10-14 01:25
这样就可以了。。。。。。。
这个库我没用过,网上找的代码,一般现在都用resquests库吧,比较方便

headers那一步没看懂{:10_260:}网址没错,这是一个用来听听力背单词的网页。那request这个库和你说的那个新的库用法有什么区别吗,或者有没有相关的文章,感觉好蒙{:10_266:}{:10_266:}{:10_251:}

疾风怪盗 发表于 2020-10-14 14:00:45

y116114 发表于 2020-10-14 13:38
headers那一步没看懂网址没错,这是一个用来听听力背单词的网页。那request这个库和你说的那个 ...

resquests库只要这样就行了,更方便,区别么,不知道,觉得就是更简单吧,至于文章么,百度找啊,很多的
import requests

url="https://www.youzack.com"
headers={'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36'}
response=requests.get(url=url,headers=headers)
html = response.content.decode()
print(html)

y116114 发表于 2020-10-14 14:10:40

疾风怪盗 发表于 2020-10-14 14:00
resquests库只要这样就行了,更方便,区别么,不知道,觉得就是更简单吧,至于文章么,百度找啊,很多的
...

嗯嗯好!就是headers那一步看不懂,那个是有固定格式吗,比如不同的网址只需要改一下个别地方就行

疾风怪盗 发表于 2020-10-14 14:21:48

y116114 发表于 2020-10-14 14:10
嗯嗯好!就是headers那一步看不懂,那个是有固定格式吗,比如不同的网址只需要改一下个别地方就行

headers就是请求头,一般放个UA就行了
如果有反爬,多加点试试

你再学下吧

伪文青 发表于 2020-10-14 14:28:37

y116114 发表于 2020-10-14 14:10
嗯嗯好!就是headers那一步看不懂,那个是有固定格式吗,比如不同的网址只需要改一下个别地方就行

headers可以省略,没发现问题import requests
response = requests.get("https://www.youzack.com")
html = response.content.decode()
print(html)

y116114 发表于 2020-10-14 15:57:51

疾风怪盗 发表于 2020-10-14 14:21
headers就是请求头,一般放个UA就行了
如果有反爬,多加点试试



嗯嗯好~

y116114 发表于 2020-10-14 15:59:12

伪文青 发表于 2020-10-14 14:28
headers可以省略,没发现问题

嗯嗯好的!谢谢!
页: [1]
查看完整版本: 简单爬取网页信息