HTTP Error 418

在学习爬虫时,我们首先学习获取网站页面的html代码:

from urllib import request
resp = request.urlopen('https://movie.douban.com/nowplaying/hangzhou/')
html_data = resp.read().decode('utf-8')
print(html_data)

一般来说,我们通过以上的代码会爬取到网站页面的html代码。
但,通过运行后报错HTTP Error 418。

在这里插入图片描述
418是个啥!!!当然就是访问的网站有反爬虫机制,而解决方法就是通过模拟浏览器来访问。
首先我们要通过下面的方法获得header中user-agent的内容。

检查(fn+f12)->网络(network)->名称(name)选中一个文件->user-agent

在这里插入图片描述
获取header:

header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36 Edg/92.0.902.55'}

通过Request(url, headers=header) 就能模仿浏览器访问网站。Request!!!

from urllib import request
from urllib.request import Request
url = 'https://movie.douban.com/nowplaying/hangzhou/'
header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36 Edg/92.0.902.55'}
ret = Request(url, headers=header)
resp = request.urlopen(ret)
html_data = resp.read().decode('utf-8')
print(html_data)

运行结果为:

在这里插入图片描述

ok 了。
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐