pip install requests # 网页数据爬取
pip install lxml # 提取网页数据
四、代码实战
4.1 导入模块
import requests # python基础爬虫库
from lxml import etree # 可以将网页转换为Elements对象
import time # 防止爬取过快可以睡眠一秒
import os # 创建文件
4.2 设置翻页
首先我们来分析一下网站的翻页,一共有10页:
第一页链接:
https://www.moyublog.com/95-2-2-0.html
第二页链接:
https://www.moyublog.com/95-2-2-1.html
第三页链接:
https://www.moyublog.com/95-2-2-2.html
可以看出每页只有95-2-2-
后面从第二页开始依次加上1
,所以用循环来构造所有网页链接:
if __name__ == '\_\_main\_\_':
# 页码
page_number = 10
# 循环构建每页的链接
for i in range(0,page_number+1):
# 页数拼接
url = f'https://www.moyublog.com/95-2-2-{i}.html'
4.3 获取图片链接
可以看到所有图片url都在 ul标签 > li标签 > a标签 > img标签下:
我们创建一个get_imgurl_list(url)
函数传入网页链接获取 网页源码,用xpath定位到每个图片的链接:
def get\_imgurl\_list(url,imgurl_list):
"""获取图片链接"""
# 请求头
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36'}
# 发送请求
response = requests.get(url=url, headers=headers)
# 获取网页源码
html_str = response.text
# 将html字符串转换为etree对象方便后面使用xpath进行解析
html_data = etree.HTML(html_str)
# 利用xpath取到所有的li标签
li_list = html_data.xpath("//ul[@class='clearfix']/li")
# 打印一下li标签个数看是否和一页的电影个数对得上
print(len(li_list)) # 输出20,没有问题
for li in li_list:
imgurl = li.xpath(".//a/img/@data-original")[0]
print(imgurl)
# 写入列表
imgurl_list.append(imgurl)
运行结果:
点开一个图片链接看看,OK没问题:
4.4 下载图片
图片链接有了,定义一个get_down_img(img_url_list)
函数,传入图片链接列表,然后遍历列表,将所有图片下载到指定文件夹:
def get\_down\_img(imgurl_list):
# 在当前路径下生成存储图片的文件夹
os.mkdir("小姐姐")
# 定义图片编号
n = 0
for img_url in imgurl_list:
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36'}
# 每次发送请求,获取图片
img_data = requests.get(url=img_url, headers=headers).content
# 拼接图片存放地址和名字
img_path = './小姐姐/' + str(n) + '.jpg'
# 将图片写入指定位置
with open(img_path, 'wb') as f:
f.write(img_data)
# 图片编号递增
n = n + 1
4.5 调用主函数
这里我们可以设置需要爬取的页码:
if __name__ == '\_\_main\_\_':
page_number = 10 # 爬取页数
imgurl_list = [] # 存放图片链接
# 1. 循环构建每页的链接
for i in range(0,page_number+1):
# 页数拼接
url = f'https://www.moyublog.com/95-2-2-{i}.html'
print(url)
# 2. 获取图片链接
get_imgurl_list(url,imgurl_list)
# 3. 下载图片
get_down_img(imgurl_list)
4.6 完整源码
完整源码如下:
import requests # python基础爬虫库
from lxml import etree # 可以将网页转换为Elements对象
import time # 防止爬取过快可以睡眠一秒
import os
def get\_imgurl\_list(url,imgurl_list):
现在能在网上找到很多很多的学习资源,有免费的也有收费的,当我拿到1套比较全的学习资源之前,我并没着急去看第1节,我而是去审视这套资源是否值得学习,有时候也会去问一些学长的意见,如果可以之后,我会对这套学习资源做1个学习计划,我的学习计划主要包括规划图和学习进度表。
分享给大家这份我薅到的免费视频资料,质量还不错,大家可以跟着学习

**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化学习资料的朋友,可以戳这里无偿获取](https://bbs.csdn.net/topics/618317507)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**