[Python练习]使用Python爬虫爬取豆瓣top250的电影的页面源码

人生乱弹 2年前 (2024) admin
10 0

1.安装requests第三方库
在终端中输入以下代码(直接在cmd命令提示符中,不需要打开Python)
pip install requests -i https://pypi.douban.com/simple/
从豆瓣网提供的镜像网站下载requests第三方库
pip install requests
是从国外网站下载,速度慢甚至有时候无法下载
2.导入第三方库
import requests
3.编写代码
import requests

response = requests.get('https://movie.douban.com/top250')
print(response.text) # 打印返回的原始HTML
4.运行
运行代码之后,没反应,无输出结果
可以看一下返回的页面请求状态码是多少:

状态码是418,所有4开头的状态码都表示客户端错误,也就是说我们这边发送的请求存在问题。418状态码表示服务器不想响应你的请求。
但是我们的请求并没有问题。其实,这里是豆瓣在用这个状态码回应爬虫:希望服务正常的浏览器而不是爬虫程序的请求
遇到这种情况,可以绕过去的一个方法就是可以定义请求头,把程序伪装成浏览器

可以新建一个叫做headers的字典变量,请求头的User-Agent里面会给服务器提供一些客户端的信息。所以要去指定User-Agent的值

现在的问题是User-Agent的值是什么?
我们可以从浏览器发送的请求里去“抄作业”

回到浏览器,进入任何一个页面,右键,点击检查

找到“网络”或network。

刷新一下网页,这样你就能看到浏览器发出的所有http请求。随便点击一个请求,找到User-Agent

把冒号后边的信息复制下来到代码中

修改代码为:
import requests

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

response = requests.get('https://movie.douban.com/top250',headers=headers)
print(response.status_code)
运行成功

现在,获取豆瓣top250的电影的页面源码:
import requests

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

response = requests.get('https://movie.douban.com/top250',headers=headers)
print(response.text)

文章来源

版权声明:admin 发表于 2024年1月18日 am6:38。
转载请注明:[Python练习]使用Python爬虫爬取豆瓣top250的电影的页面源码 | 银库

相关文章

本站主题由 OneNav 一为主题强力驱动