【重生之我是蜘蛛侠】手把手教你用python爬虫,跟着做就好了

博客内容:【训练营】用栈来实现队列+用队列来实现栈 详解
作??者:陈大大陈
个人简介:一个正在努力学技术的准前端 , 专注基础和实战分享  , 欢迎私信!
欢迎大家:这里是CSDN , 我总结知识和写笔记的地方 , 喜欢的话请三连 , 有问题请私信
目录
获取豆瓣网页源码
怎么伪装成浏览器请求
【【重生之我是蜘蛛侠】手把手教你用python爬虫,跟着做就好了】怎么打印标题
最终代码
后记
首先要安装bs4这个第三方库 。
打开的终端界面 , 输入pipbs4即可安装 。
我之前安装过 , 所以显示已安装 。
第三步是导入库 , 没有的话也要安装 , 步骤和上面的一样 , 命令变为pip
获取豆瓣网页源码
先获取网页源码 , 需要我们先导入库 。
先试试直接获取 , 看能不能成功 。
import requestsresponse=requests.get("https://movie.douban.com/top250")print(response)print(response.status_code)
结果如下 。
打印出错误码 , 访问失败 。
这是因为豆瓣网页识别出了我们的程序 , 而豆瓣网页只想服务于真正的用户 。
那么我们接下来要做的就是将程序伪装成浏览器请求来伪装成用户 。
怎么伪装成浏览器请求
首先随便打开一个网页 。
右键点击检查 。
找到网络选项 , 点击跳转到下面的页面 。
接着刷新页面 , 页面变成下面这样 。
随便点开一个 , 找到User-Agent选项 。
复制它之后的内容 。
我们创建一个叫的字典 , 它里面的键值对就是我们要传入的内容 。
将代码升级为下面这样 。
import requestsheaders={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36 Edg/113.0.1774.42"}reponse=requests.get("https://movie.douban.com/top250",headers=headers)print(reponse)print(reponse.status_code)print(reponse.text)
运行 。
没有报错 , 访问成功 。接下来打印源码 。
print(.text)
打印成功 。
怎么打印标题
第二步就是从bs4中导入库
from bs4
将响应体里面的内容用一个html变量储存 。
html=.text
接下来把html传入的构造函数来获取想要的信息 。
第二个参数传入html. , 它的含义是html解析器 , 代表正在解析html内容 。
使用一个变量储存它 。
接下来我们需要知道所查找信息的特点 。
打开豆瓣网页 , 右键检查 , 选择小箭头 , 鼠标靠近电影名称 。
我们发现标题都是span元素 , 且class属性都是title 。
这样我们就可以使用的方法 , 第一个标签传入标签名span , 第二个标签传入class值 。
=soup.("span",attrs={"class":"title"})
返回的是一个可迭代对象 , 我们来迭代一下它,打印出来如下所示 。
我们不想要它的HTML标签 , 所以就只打印它的属性 。
print()
这次打印出来如下所示 , 我们也不想要它的原版标题 , 该怎么删除呢?
一个简单的if判断就能搞定 。
title_string=title.stringif '/' not in title_string:print(title.string)
这样 , top25的电影就被我们打印出来了 。