Python爬虫的用处就不需要我多说了吧,今天就来带大家十分钟快速学会Python是如何爬取网页信息的,当然大家在爬取目标网页内容之前一定要遵守该网页的爬虫规则,以免带来不必要的麻烦,因而本次的示例所爬取的网页也是自己的本地网站,但是效果都应该是差不多的,下面我们开始。
1 总体步骤
(1)确定想要进行爬虫的站点,确认合法性(网站的根目录域名后加上/robots.txt可查看)
(2)获取该站点网页的HTML内容
(3)解析站点HTML内容
(4)对解析后的HTML内容进行有规律的清洗和处理
(5)验证爬虫结果
2 具体步骤示例
目标网站:http://localhost:8080
首先我们需要查询下目标网站的robots.txt文件(http://localhost:8080/robots.txt) 这两行的意思是对任何类型的爬虫(机器人)有效,允许爬取/目录下的内容,一般robots.txt都是由零个或多个User-agent、Allow、Disallow构成的,具体的规则大家可以利用搜索引擎进行补充学习(例如:(baike.baidu.com/item/robots…%25EF%25BC%2589 “https://baike.baidu.com/item/robots%E5%8D%8F%E8%AE%AE/2483797?fromtitle=robots.txt&fromid=9518761&fr=aladdin)%EF%BC%89”)
接下来我们访问目标网站http://localhost:8080,查看其HTML代码 具体的HTML代码:
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>Hello</title>
</head>
<body>
<h1>My WebSite</h1>
<table>
<tbody>
<tr>
<td>A</td>
<td>B</td>
<td>C</td>
<td>D</td>
</tr>
<tr>
<td>E</td>
<td>F</td>
<td>G</td>
<td>H</td>
</tr>
</tbody>
</table>
<ul>
<li><img src="./images/1.png"></li>
<li><img src="./images/2.png"></li>
<li><img src="./images/3.png"></li>
<li><img src="./images/4.png"></li>
<li><img src="./images/5.png"></li>
<li><img src="./images/6.png"></li>
</ul>
</body>
</html>
我们的爬虫目标:
- 下载该网页的全部图片
- 获取table下tb的全部内容
Python代码:
from lxml import etree
import requests as requests
# 爬取的目标网站的URL
url = 'http://localhost:8080'
# 获取目标网站的HTML代码
read = requests.get(url)
context = read.text
# 将目标网站HTML代码做转化
resp = etree.HTML(context)
tree = resp.xpath('/html/body/ul/li[*]/img/@src')
tree1 = resp.xpath('/html/body/table/tbody/tr[*]/td/text()')
# 做具体的操作
# 任务1
for item in tree:
img_name = str(item).split("/")[2]
img_url = url + "/images/" + img_name
save_url = "C:/Desktop/img/" + img_name
# 保存图片到本地
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36'
}
r = requests.get(img_url, headers=headers)
f = open(save_url, 'wb')
f.write(r.content)
print(img_name + " 已下载...")
f.close()
print("---任务1完成---")
# 任务2
for item in tree1:
print(item)
print("---任务2完成---")
爬取结果:文件成功保存到本地,控制台输出如下 答疑:
Q1:爬虫相关插件的依赖如何下载?
A1:本次爬虫示例主要使用了两个插件分别为requests和lxml,下载方式:
- pip install requests
- pip install lxml
Q2:resp.xpath括号里面的内容如何确定?
A2:XPath的获取方式(Chrome浏览器) Q3:headers有什么作用?如何确定?
A3:headers是解决requests请求反爬的方法之一,相当于我们进去这个网页的服务器本身,假装自己本身在爬取数据。获取方式:
3 总结
好了,全文到这里就接近尾声了,不知道大家是否可以在十分钟内学会,当然前提是懂一些Python的语法哈。再次提醒大家一个很重要的前提就是一定要在合法合规的前提下爬取目标网站,保护个人隐私,这也是互联网行业每一名工程师的职业准则。
其次,本篇文章为了简单的演示导致了功能也比较的简单,真正的爬虫可能要比这复杂的多,学习的方式和路径也有很多种,这就需要大家自己择优而取咯~
如果你对Python感兴趣,想要学习python,这里给大家分享一份Python全套学习资料,都是我自己学习时整理的,希望可以帮到你,一起加油!
😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓
Python全套学习资料
1️⃣零基础入门
① 学习路线
对于从来没有接触过Python的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
② 路线对应学习视频
还有很多适合0基础入门的学习视频,有了这些视频,轻轻松松上手Python~
③练习题
每节视频课后,都有对应的练习题哦,可以检验学习成果哈哈!
2️⃣国内外Python书籍、文档
① 文档和书籍资料
3️⃣Python工具包+项目源码合集
①Python工具包
学习Python常用的开发软件都在这里了!每个都有详细的安装教程,保证你可以安装成功哦!
②Python实战案例
光学理论是没用的,要学会跟着一起敲代码,动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。100+实战案例源码等你来拿!
③Python小游戏源码
如果觉得上面的实战案例有点枯燥,可以试试自己用Python编写小游戏,让你的学习过程中增添一点趣味!
4️⃣Python面试题
我们学会了Python之后,有了技能就可以出去找工作啦!下面这些面试题是都来自阿里、腾讯、字节等一线互联网大厂,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
5️⃣Python兼职渠道
而且学会Python以后,还可以在各大兼职平台接单赚钱,各种兼职渠道+兼职注意事项+如何和客户沟通,我都整理成文档了。
上述所有资料 ⚡️ ,朋友们如果有需要的,可以扫描下方👇👇👇二维码免费领取🆓