【python】基础网络爬虫教程

article/2025/11/8 13:16:07

1.爬虫目的
用通俗易懂的话来说,是对多种类型数据(如文字,图片,音频,视频等)进行批量式的采集与存储。
本文为个人一些学习心得,举例对网页进行信息爬取操作,使用python中基础的方法进行爬取,便于理解学习。

2.爬虫准备
需要对python有一些基础,对字符串,列表,循环结构等有了解。需要对HTML语言有一些了解,能看懂结构即可。

3.爬虫流程
选取目标数据源(以网站为例)→向目标网站发起网络请求→获取目标的响应数据→对信息进行选取→利用表达式或方法(如正则表达式,xpath方法等)进行信息匹配→获得信息并储存

4.调用模块概要
4.1 request模块是用于模拟浏览器向目标网址发送网络请求并获得响应数据的模块。
4.2 lxml模块是XML和HTML的解析器,其主要功能是解析和提取XML和HTML中的数据。
其中的etree函数,主要可以用来解析XML字符串,也是基础的解析方法。

5.爬取实例
刚开始学习爬虫时,厌倦了一成不变的桌面壁纸,于是便找到一个小众的壁纸网站Awesome Wallpapers - wallhaven.cc,想大量爬取图片来更换桌面壁纸,算是一些个人的兴趣爱好了,以下是我的代码实现,注释较为详细。

6.爬取成果

# 导入模块
from lxml import etree
import requests
import os# 创建文件夹
if not os.path.exists('./wallhaven_picture'):os.mkdir('./wallhaven_picture')# 准备参数(进行UA伪装)
# 为了防止恶意访问造成网站损失,大部分网站都有设置有反爬机制
# UA伪装即伪装成浏览器来获取数据,以免遭到反爬机制拦截
headers = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.4281.147 Safari/532.36 Edg/87.0.632.15'}# 爬取热门标签
# request的get方法能帮助我们模拟对网站发起请求
# request的get方法有几个参数,这里使用了url即目标网站;headers即用于伪装的身份信息
# etree用于接收目标网站的反馈数据,为此实例化一个tree的对象,到此完成获取目标网站的全部数据
# xpath是用于在全部信息中找到我们所需要的信息,如文字,图片等等(也可以使用正则表达式等)
# xpath方法中定位信息需要简单看懂HTML的结果与其中包含的标签信息,这里不赘述
# tips:csdn中有很多大佬讲解的HTML语音与结构,可以打开一个网页按F12去试着定位信息
# tips:在定位到需要的信息是,可以右击复制xpath路径能帮助去更好去理解结构
url_tag = 'https://wallhaven.cc/tags/popular'
# 对标签页发起网络请求
response = requests.get(url=url_tag, headers=headers)
# 实例化标签页数据
tree = etree.HTML(response.text)
# 爬取所有标签信息
tag_list = tree.xpath('//div[@class="taglist-tagmain"]/span[@class="taglist-name"]')
print('---------------当前热门标签---------------')
for n in tag_list:# 爬取标签名称tag_name = n.xpath('./a/text()')[0]# 爬取标签原IDtag_id = n.xpath('./a/@href')[0]# 裁剪标签IDtag_num = tag_id.split('/tag/')[-1]print('标签:', tag_name)print('ID:', tag_num)
print('---------------华丽的分割线---------------')# 爬取图片
# 爬取图片的过程与上面获取标签页的步骤一致,最后将图片存储到本地文件夹
id_value = input('键入标签ID获取图片:')
print('---------------爬取图片开始---------------')
for k in range(10):url_img = 'https://wallhaven.cc/search?q=id%3A'+id_value+"&page="+str(k+1)response = requests.get(url=url_img, headers=headers)  tree = etree.HTML(response.text)  # 爬取所有图片信息img_list = tree.xpath('//div/section[1]/ul/li')for i in img_list:# 爬取图片原IDimg_id = i.xpath('./figure/@data-wallpaper-id')[0]# 剪裁图片IDimg_num = img_id[:2]# 拼接图片地址,这里得到完整的目标图片路径img_url = 'https://w.wallhaven.cc/full/' + img_num + '/wallhaven-' + img_id + '.jpg'img_data = requests.get(url=img_url, headers=headers)img_choose = etree.HTML(img_data.text)# 爬取图片特征信息img_chosen = img_choose.xpath('/html/body/center[1]/h1/text()')# 对图片进行特征判断,图片主要为JPG与PNG的格式,这里进行分支判断# JPG图片处理if img_chosen == ['404 Not Found']:img_url = 'https://w.wallhaven.cc/full/' + img_num + '/wallhaven-' + img_id + '.png' # 对图片发起网络请求img_data = requests.get(url=img_url, headers=headers)# 以PNG形式保存图片with open('./wallhaven_picture/{}.png'.format(img_id), 'wb') as png:png.write(img_data.content)print(img_url, '下载完毕')# JPG图片处理else:# 以JPG形式保存图片with open('./wallhaven_picture/{}.jpg'.format(img_id), 'wb') as jpg:jpg.write(img_data.content)print(img_url, '下载完毕')

6.爬取成果

 

7.个人体会

在学习一门新的应用为主的技能时,个人认为实践才是较快的学习方法,进行实操时,去运用并熟练。多多学习其他大佬的经验,毕竟站在巨人的肩膀上才能看的更远,也祝大家学有所成。 


http://chatgpt.dhexx.cn/article/Hv2vqRLu.shtml

相关文章

python网络爬虫及数据可视化

广东某学校的期末python作业 一、设计内容及要求 设计内容:对中国大学专业排名网站中2021年,计算机科学与技术专业,进行数据爬取和数据可视化。 URL: https://www.shanghairanking.cn/rankings/bcmr/2021/080901 设计要求&am…

python网络爬虫的流程图_Python 网络爬虫程序架构及运行流程

1 前言 Python开发网络爬虫获取网页数据的基本流程为: 发起请求 通过URL向服务器发起request请求,请求可以包含额外的header信息。 获取响应内容 服务器正常响应,将会收到一个response,即为所请求的网页内容,或许包含HTML,Json字符串或者二进制的数据(视频、图片)…

python网络爬虫--网页登录

1、前言 主要用到python的selenium库,通过模仿浏览器行为定位登录所需的标签位置,实现网页登录功能.最后在码云(gitee)上测试自动登录功能. 2、selenium定位网页元素 关于selenium的使用前准备可以看到我之前的一篇…

python网络爬虫可以干什么,python网络爬虫有什么用

python爬虫能做什么 世界上80%的爬虫是基于Python开发的,学好爬虫技能,可为后续的大数据分析、挖掘、机器学习等提供重要的数据源。什么是爬虫? (推荐学习:Python视频教程)网络爬虫(又被称为网…

python网络爬虫技术课后答案_尔雅《Python网络爬虫技术(2020年秋季学期)》网课答案...

尔雅《Python网络爬虫技术(2020年秋季学期)》网课答案 法律的一般含义是() 答:法律是由国家创制并保证实施的行为规范 下列属于急症手术的是 答:肝破裂 脾气统摄血液的功能,实际上是()的固摄作用的体现 答:气 中国古代南北争战中&…

(一)python网络爬虫(理论+实战)——爬虫的初步认识

小白都能学会的python网络爬虫专栏: https://blog.csdn.net/c1007857613/category_12127982.html 序言 本人从事爬虫相关工作已8年以上,从一个小白到能够熟练使用爬虫,中间也走了些弯路,希望以自身的学习经历,让大家能…

Python网络爬虫经典书籍推荐

1. Python编程:从入门到实践 - 2016 本书是一本针对所有层次的Python 读者而作的Python 入门书。全书分两部分:第一部分介绍用Python 编程所必须了解的基本概念,包括matplotlib、NumPy 和Pygal 等强大的Python 库和工具介绍,以及…

(二)python网络爬虫(理论+实战)——爬虫分类和基本流程

小白都能学会的python网络爬虫专栏: https://blog.csdn.net/c1007857613/category_12127982.html 序言 本人从事爬虫相关工作已8年以上,从一个小白到能够熟练使用爬虫,中间也走了些弯路,希望以自身的学习经历,让大家能…

python网络爬虫实验报告_Python网络爬虫实例讲解

聊一聊Python与网络爬虫。 1、爬虫的定义 爬虫:自动抓取互联网数据的程序。 2、爬虫的主要框架 爬虫程序的主要框架如上图所示,爬虫调度端通过URL管理器获取待爬取的URL链接,若URL管理器中存在待爬取的URL链接,爬虫调度器调用网…

Python网络爬虫简介与环境配置

第一章 Python网络爬虫简介与环境配置 1.1 网络爬虫简介 随着互联网的快速发展越来越多的信息被发布到互联网上,这些信息被嵌入到各种各样的网页结构及样式中。虽然搜索引擎可以辅助用户搜索这些网页信息,但是通用的搜索引擎的目标是尽可能覆盖全网络&…

五分钟学会Python网络爬虫

但不管怎样,爬虫技术是无罪的,还是值得我们开发人员去学习了解一下的。在学习之前,我们还是要先了解一下相关概念。 什么是爬虫 网络爬虫:又被称为网页蜘蛛,网络机器人,是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本。 大数据时代,要进行数据分析,首先…

python爬虫简介

python爬虫是收集互联网数据的常用工具,近年来随着互联网的发展而快速发展。使用网络爬虫爬取网络数据首先要了解网络概念和主要分类,各类爬虫的系统结构、运作方式,常用策略,以及主要的应用场景,同时,出于…

python爬虫入门教程(非常详细),超级简单的Python爬虫教程

一、基础入门 1.1什么是爬虫 爬虫(spider,又网络爬虫),是指向网站/网络发起请求,获取资源后分析并提取有用数据的程序。 从技术层面来说就是 通过程序模拟浏览器请求站点的行为,把站点返回的HTML代码/JSON数据/二进制数据&…

python简单实现网络爬虫

前言 在这一篇博客中,我会用python来实现一个简单的网络爬虫。简单的爬取一下一些音乐网站、小说网站的标题、关键字还有摘要!所以这个爬虫并不是万能爬,只针对符合特定规则的网站使用。(只使用于爬标题、关键字和摘要的&#xff…

【海岛吉他1】全面认识吉他谱

调号 拍号 1G 4/4 休止符:

新手小白学吉他,如何掌握基础快速入门

吉他弹唱是非常快乐,非常浪漫,非常酷的一件事。俗话说“不怕流氓有文化,就怕流氓有吉他”,大家也都知道吉他是把妹的神器。相信很多人的床底下,角落里,都扔了一把布满了灰尘的吉他,因为学不会而…

乐理: 认识吉他谱

文章目录 2019/6/20日记调式节奏与拍谱标记参考资料 2019/6/20日记 基本乐理都不会,到处搜资料太乱了,找了几个免费乐理教程先好好系统学习一下吧,不知道好不好。记录一下, 每天做题做累了看一点吧。。。 网易云公开课聆听音乐(耶鲁大大学公…

转自知乎的吉他学习篇

iPhone Android 错过这篇,你可能这辈子都学不会弹吉他了(多图) 图片:《醉乡民谣》 零基础如何自学吉他? 梁策, 非阴谋论者/产品经理/吉他爱好者 错过这篇文章,你可能这辈子都学不会弹吉他了。 …

新手入门吉他推荐,第一把吉他从这十款选绝不踩雷!初学者吉他选购指南【新手必看】#VEAZEN费森#雅马哈#卡马

一、新手购琴注意事项: 1、预算范围 一把合适的吉他对于初学者来说会拥有一个很好的音乐启蒙。选一款性价比高,做工材料、音质和手感相对较好的吉他自然不会是一件吃亏的事。**初学者第一把琴的预算,我觉得最低标准也是要在500元起&#xf…