python面向对象爬取肖战图片

您所在的位置:网站首页 肖战星推荐 python面向对象爬取肖战图片

python面向对象爬取肖战图片

2023-08-17 20:19| 来源: 网络整理| 查看: 265

今天小编想大家介绍的是用python在堆糖上爬取肖战的图片。

主要步骤:

1.获取网址 2.运用requests包模拟网站,向服务器发送请求,获取响应 3.清洗数据,通过正则表达式筛选自己需要的数据 4.保存数据

关键字:requests,正则表达式,面向对象

本文通过面向对象的方法介绍爬虫,下一期小编在介绍面向过程如何爬取。 现在就正式给大家讲解爬虫步骤。

import re # 正则表达式 import requests # 爬虫用的包 from urllib.request import urlretrieve # 本文用来下载图片 import os # 标准库,本文用来新建文件夹

1.构建大体框架 构建好面向对象的大体框架,分好步骤,这样写代码思路才够清晰。

class Xiaozhan(object): def __init__(self): pass def run(self): pass if __name__ == "__main__": xiaozhan = Xiaozhan() xiaozhan.run()

构建好这样的框架才能饶昂整个程序跑起来,run函数则是我们的主函数,那么我们在主函数里先注释好我们需要做的步骤,主要步骤则是开始写的四条。 2.获取网址

def __init__(self): self.base_url = "https://www.duitang.com/search/?kw=肖战&type=feed#!s-p{}"

在这里插入图片描述 我们接着翻到第二页 在这里插入图片描述 我在翻一页看看会怎么样 在这里插入图片描述 我们发现了规律,每翻一页s-p{}就会增加1,我们就可以通过这个规律来获取更多的网址。我们就定义获取网址的一个函数。

def Geturl(self): all_url = [] for item in range(3): all_url.append(self.base_url.format(item)) return all_url

定义一个列表来保存网址,通过for循环增加网址。基础网址我们已经初始化了,这里可以直接用。 3.发送请求,获取响应 那么现在我们有了网址,下一波就模拟网页想服务器发送请求,获取响应。 点击鼠标右键,点击检查(小编用的谷歌浏览器,其他浏览器也可以右键) 在这里插入图片描述 进来会发现这个页面,如果没有,就ctrl+r 刷新下 在这里插入图片描述 我大体介绍下这个网页的构成,这里是网页的源代码,又一个个标签组成的(小编也是初学者,目前还没有学习前端的知识,这是个人的理解) 点击network,会发现有许多选项,就随便点击一个 在这里插入图片描述 在这里插入图片描述 我们现在重点关注右边,往下找,会找到user_agent,这是就浏览器的信息,服务器也是通过这个信息来判断是浏览器来发送的请求,还是其他,这个非常关键。那么现有了网址,也有了user-agent,就可以模拟浏览器了。 在这里插入图片描述 在初始化函数里添加我们刚刚找到的user-agent,注意要用字典的形式。

def __init__(self): self.base_url = "https://www.duitang.com/search/?kw=肖战&type=feed#!s-p{}" self.header = {"user-agent": "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Mobile Safari/537.36" }

定义函数来获取网页的源代码,运行函数

def Respons(self, all_url): text_list=[] for url in all_url: r = requests.get(url, headers=self.header) text_list.append(r.text) return text_list

在这里插入图片描述 点击这个按钮,再去点击图片,可以快速找到该图片的源代码 在这里插入图片描述 我们发现图片的网址构成组成方式相同,都是



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3