狠狠做狠狠干免费网站,爱站seo工具包下载,中国建设银行网站打不开,网站建设这个行业怎么样python爬取网页图片并下载之GET类型
准备工作
【1】首先需要准备好pycharm#xff0c;并且保证环境能够正常运行
【2】安装request模块
pip install requestsimport request导入request内置模块
【3】安装lxml模块
pip install lxmlfrom lxml import etree导入lxml.etre…python爬取网页图片并下载之GET类型
准备工作
【1】首先需要准备好pycharm并且保证环境能够正常运行
【2】安装request模块
pip install requestsimport request导入request内置模块
【3】安装lxml模块
pip install lxmlfrom lxml import etree导入lxml.etree内置模块
如果导入etree失败的话可以尝试
from lxml import html
etree html.etree目标网站
今日的目标是爬取图片信息
网址:[loryx.wiki]([home LoR丨中文百科] (loryx.wiki))
分析网站 该部分是这次要爬取的所有图片内容首先F12打开网络并且选中ALL然后CtrlR刷新页面 打开最上方加载的文件的Response发现和页面的源码非常相似并且编码类型为utf-8 接着点开Headers
可以看到该网页是GET类型并且状态码是200URL也和该页面相同 那么接下来就可以用python来模拟request请求了
爬虫代码
其实GET方法在这里data不带进去也行写在这里是为了更方便理解
import requests
from lxml import etreeurl https://loryx.wiki/%E6%B5%8F%E8%A7%88/%E7%89%8C%E5%BA%93
data {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/231.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/231.36 Edg/120.1.1.0
}res requests.get(urlurl, datadata)
res.encoding utf-8接下来拿到了request对象后就可以来对元素进行筛选了
首先获取完整的网页源码print(res.text)
打印结果为
可以看见没有问题那么继续用etree进行解析
et etree.HTML(res.text)继续分析网页内容
在图片链接处右键进入检查 然后我们就得到了标签页信息我们将要获取的就是td标签中的col15 leftalign元素中的a标签的href链接信息于此同时我们还需要对应的内容来作为图片的名称否则你将会看到一堆乱码的哈希值
这里就用卡牌名称作为图片名取元素的方法也和图片同理
# 图片链接
src et.xpath(//td[classcol15 leftalign]/a/href)# 图片名称
name et.xpath(//td[classcol0 leftalign]/text())当前所有采集到的内容都存储在srcname这两个列表中
我们打印src就可以看到这样的图片链接
打开后就可以在浏览器中看到图片 该效果说明我们下载图片的原理还是向这个网页发送请求然后再获取返回的结果
图片下载
演示只取9张图片不然的话可以直接range(len(src))
for i in range(9):with open(fimg/{name[i]}.png, wb) as f:f.write(requests.get(src[i]).content)这里需要注意要用wb因为写入的是二进制数据
运行程序 OK完工
总结
以上就是python中最基础的爬虫案例当然实际项目中基本不会有用with open(fimg/{name[i]}.png, wb) as f:这种写法因为效率太低了本篇文章只是为了以最直观的方式呈现爬虫下载图片的原理
完整代码
import requests
from lxml import etreeurl https://loryx.wiki/%E6%B5%8F%E8%A7%88/%E7%89%8C%E5%BA%93
data {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0
}res requests.get(urlurl, datadata)
res.encoding utf-8
et etree.HTML(res.text)
# print(res.text)
src et.xpath(//td[classcol15 leftalign]/a/href)
name et.xpath(//td[classcol0 leftalign]/text())
for i, index in enumerate(name):name[i] index.strip()for i in range(9):with open(fimg/{name[i]}.png, wb) as f:f.write(requests.get(src[i]).content)