python爬取网页图片

article/2025/5/18 0:01:58

python爬取网页图片

爬取数据一般分为三步:

  1. 爬取网页信息
  2. 解析爬取来的数据
  3. 保存数据

找到自己想要爬取的网页,找到user-agent

在这里插入图片描述

代码实现

  1. 首先导入需要用到的包
from bs4 import BeautifulSoup     #网页解析,获取数据
import re       #正则表达式,进行文字匹配
import urllib.request,urllib.error      #制定URL,获取网页数据
import xlwt     #进行excel操作
import sqlite3  #进行SQLite数据库操作import os		
import requests
  1. 构造函数
    在这里插入图片描述
  2. 将待爬取网页的信息加载进来
def askURL(url):head={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36 Edg/92.0.902.55"}res =urllib.request.Request(url,headers=head)html = ''try:response =urllib.request.urlopen(res)html = response.read().decode("gbk")# print(html)except urllib.error.URLError as e:if hasattr(e,"code"):print(e.code)if hasattr(e,"reason"):print(e.reason)return html
  1. 导入链接
def main():baseurl ="填入爬取网页的链接"# 1.爬取数据datalist = getData(baseurl)# 在d盘Pyproject目录下创建名称为img的文件夹path2 = r'D://Pyproject'os.mkdir(path2 + './' + "img")#保存图片路径savepath = path2 + './' + "img" + './'# 3.保存数据savaData(datalist,savepath)
  1. 爬取网页信息:

#图片链接
findImg = re.compile(r'<img.*src="(.*?)"/>')
#图片名字
findName = re.compile(r'<img alt="(.*?)".*/>')#爬取网页数据
def getData(baseurl):datalist = []for i in range(2,10):		#得到多个爬取数据url = baseurl+str(i)+'.html'html=askURL(url)		#保存获取到的网页源码#print(html)			#测试保存源码是否成功#2.解析数据soup = BeautifulSoup(html,"html.parser")for item in soup.find_all('img'):	#查找符合要求的字符串#print(item)data = []item = str(item)# 图片名字name = re.findall(findName, item)	#re库用来通过正则表达式查找指定的字符串data.append(name)		#添加图片名字#图片链接img = re.findall(findImg,item)[0]data.append(img)datalist.append(data)return datalist
  1. 保存图片到指定位置:
def savaData(datalist,savepath):print("save...")for i in range(0, 160):print("第%d条" % (i + 1))data = datalist[i]for j in range(0, 2):if j == 0:name = str(data[j])else:r = requests.get('https://pic.netbian.com/' + str(data[j]), stream=True)with open(savepath + name + '.jpg', 'wb') as fd:for chunk in r.iter_content():fd.write(chunk)

全部代码如下:

# -*- codeing = utf-8 -*-
# Time : 2021/7/26 22:31from bs4 import BeautifulSoup
import re
import urllib.request,urllib.errorimport os
import requestsdef main():baseurl ="自己想要爬取的网页链接"# 1.爬取数据datalist = getData(baseurl)# 在d盘Pyproject目录下创建名称为img的文件夹path2 = r'D://Pyproject'os.mkdir(path2 + './' + "img")savepath = path2 + './' + "img" + './'# 3.保存数据savaData(datalist,savepath)#askURL("https://pic.netbian.com/4kmeinv/index_")#图片链接
findImg = re.compile(r'<img.*src="(.*?)"/>')
#图片名字
findName = re.compile(r'<img alt="(.*?)".*/>')#爬取网页数据
def getData(baseurl):datalist = []for i in range(2,10):url = baseurl+str(i)+'.html'html=askURL(url)#print(html)#2.解析数据soup = BeautifulSoup(html,"html.parser")for item in soup.find_all('img'):#print(item)data = []item = str(item)# 图片名字name = re.findall(findName, item)data.append(name)#图片链接img = re.findall(findImg,item)[0]data.append(img)datalist.append(data)return datalist#保存数据
def savaData(datalist,savepath):print("save...")for i in range(0, 160):print("第%d条" % (i + 1))data = datalist[i]for j in range(0, 2):if j == 0:name = str(data[j])else:r = requests.get('https://pic.netbian.com/' + str(data[j]), stream=True)with open(savepath + name + '.jpg', 'wb') as fd:for chunk in r.iter_content():fd.write(chunk)#爬取一个数据
def askURL(url):head={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36 Edg/92.0.902.55"}res =urllib.request.Request(url,headers=head)html = ''try:response =urllib.request.urlopen(res)html = response.read().decode("gbk")# print(html)except urllib.error.URLError as e:if hasattr(e,"code"):print(e.code)if hasattr(e,"reason"):print(e.reason)return htmlif __name__ == "__main__":main()

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

相关文章

走好这六步,python爬虫爬取网页数据手到擒来~

前言&#xff1a; 用python的爬虫爬取数据真的很简单&#xff0c;只要掌握这六步就好&#xff0c;也不复杂。以前还以为爬虫很难&#xff0c;结果一上手&#xff0c;从初学到把东西爬下来&#xff0c;一个小时都不到就解决了。 python爬虫六步走 第一步&#xff1a;安装requ…

css样式优先级详解

很多人在写代码的过程中会出现css样式冲突的情况&#xff0c;那么我们怎样才能应用我们想用的样式&#xff0c;下面就个人经验写了一点总结&#xff01; 1.权值&#xff08;浏览器是根据权值来判断使用哪种css样式的&#xff0c;哪种样式权值高就使用哪种样式&#xff09; ①标…

css样式优先级问题

此片博客为参考博客&#xff0c;更多详情可看:https://www.cnblogs.com/ombre/p/7418667.html 官方表述的CSS样式优先级如下: 通用选择器(*&#xff09;<元素(类型)选择器<类名选择器<属性选择器<伪类选择器<ID选择器<内联样式 其中内联样式只能通过style&…

前端基础-CSS样式的优先级

样式的优先级&#xff08;了解&#xff09; 1.强制优先级&#xff08;important&#xff09; 语法&#xff1a;样式属性:值 !important; 示意图 注意&#xff1a;只针对当前这一条css属性 2.选择器优先级 伪对象选择器>!important>行内样式>id选择器>class选…

HTML——CSS样式优先级

代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-width, initia…

关于CSS样式优先级

设定Li 当中的a链接样式的时候&#xff0c;设了几次没成功。考虑跟优先级有关。转载这篇文章&#xff0c;供自己记录学习&#xff0c;与新手们讨论交流 一般情况下&#xff1a; [1位重要标志位] > [4位特殊性标志] > 声明先后顺序 !important > [ id > class &g…

JavaWeb_CSS(5)_样式优先级

本系列博客汇总在这里&#xff1a;JavaWeb_CSS 汇总 目录 样式优先级示例 样式优先级 由上到下&#xff0c;由外到内。优先级由低到高。 示例 CSS 文件1p {text-align: center;color: red; }CSS 文件2p {text-align: center;color: green; }/*div 表示 p 标签往内一层*/ d…

CSS 样式优先级权重

CSS的样式优先级可分为四大类&#xff1a; 1、&#xff01;important 无论何种引入方式和选择器&#xff0c;优先级都是最高的&#xff1b; 2、行内样式 style"" 行内样式的优先级要高于嵌入和外链&#xff0c;嵌入和外链如果使用的选择器相同就看他们在页面中插…

html中css样式的优先级规则

CSS2.1 中规定了关于 CSS 规则 Specificity&#xff08;特异性&#xff09;的计算方式&#xff0c;用一个四位的数字串&#xff08;注&#xff1a;CSS2 中是用三位&#xff09;来表示&#xff0c;最后以 Specificity 的高低判断 CSS 的优先权。Specificity 具体的计算规则&…

WEB前端--CSS样式优先级

出处&#xff1a; http://xugang.cnblogs.com 样式的优先级 多重样式&#xff08;Multiple Styles&#xff09;&#xff1a;如果外部样式、内部样式和内联样式同时应用于同一个元素&#xff0c;就是使多重样式的情况。 一般情况下&#xff0c;优先级如下&#xff1a; &#…

CSS的样式与优先级

上节我们学习了三种CSS修饰html的三种方式&#xff1a;内部样式-外部样式-行内样式 那他们有没有优先级之分那&#xff1f;是有的&#xff0c;我们可以了解一下他们同时修改样式是怎么样的优先级 首先在书写的格式上我们的书写顺序排序是&#xff1a;行内-外部-内部 一般都要按…

【三】CSS之样式的优先级

【三】CSS之样式的优先级 1 css样式的优先级 css在使用过程中&#xff0c;因为很多的选择符有具有批量查找的特点&#xff0c;所以很容易出现样式污染的问题。样式污染出现的原因是因为css代码编写过程中&#xff0c;因为引入方式、书写先后顺序以及选择符的优先级等问题导致的…

【CSS】样式优先级

找了好多资料&#xff0c;真是什么样的答案都有&#xff0c;所以自己收集整理了一下。 优先级从高到低如下&#xff1a; &#xff01;important行内样式id选择器类选择器属性选择器伪类选择器标签选择器伪元素选择器 参考&#xff1a;CSS 样式优先级 | 菜鸟教程 (runoob.com)…

HTML样式表优先级最低的是,css的样式优先级

前几天做百度的笔试题&#xff0c;第一题就是关于css优先级的&#xff0c;虽然知道一些规则&#xff0c;但碰上把各条规则相互组合就懵逼了&#xff0c;所以还是得来好好总结一下的。 首要原则 就两条&#xff1a; 优先级高的样式覆盖优先级低的样式 同一优先级的样式&#xff…

#IT界大佬告诉你,程序员接私活的7大平台利器

今天小编在网上汇集了一些国内程序员接私活的平台&#xff0c;希望对大家能够有用。 1、程序员客栈&#xff1a;程序员的经纪人 2、快码众包-让互联网产品开发更快速&#xff01;认准域名Kuai.ma 3、Coding 码市 - 基于云技术的软件外包服务平台 coding码市 4、开源中国众包平…

2020年 9 大程序员接私活的网站

点击“开发者技术前线”&#xff0c;选择“星标????” 在看|星标|留言, 真爱 2019互联网圈不好混&#xff0c;不是每个公司都能像腾讯云每人一部iPhone 11&#xff0c;不少公司今年已经没了年终奖&#xff0c;不要抱怨&#xff0c;因为有的小伙伴估计工作都没了。师长今天…

好起来了!程序员副业接私活网站分享~

来源&#xff1a;网络 1、程序员客栈&#xff1a;程序员的经纪人2、快码众包-让互联网产品开发更快速3、开源中国众包平台 oschina众包4、Coding 码市 - 云技术众包平台5、我爱方案网-电子方案开发&#xff0c;供应链平台6、码易-高质量软件众包交付服务平台7、人人开发 -让管理…

程序员可接私活的10个平台和一些建议,别掉坑里!

点击上方“码农突围”&#xff0c;马上关注&#xff0c;每天上午8:50准时推送 这里是码农充电第一站&#xff0c;回复“666”&#xff0c;获取一份专属大礼包 真爱&#xff0c;请设置“星标”或点个“在看” 作者&#xff1a;程序员新视界 来源&#xff1a;http://suo.im/4tacf…

程序员接私活的6个网站,你有技术就有钱!

点击上方“Python高校”&#xff0c;关注 未未干货立马到手 作者&#xff1a;发哥 链接&#xff1a;GitHubDaily 本篇文章会向大家推荐国内外几个接外包比较靠谱的平台&#xff0c;主旨是贵精不贵多。因此&#xff0c;像「猪x戒」这种会让程序员自贬身价&#xff0c;扰乱市场规…

程序员养家活口接私活必备网站(顺便用技术改变世界)

程序员接私活的原因很多种(挣钱、养家糊口、提升技术等等)。下面整理了一下网站送给最有潜能的你。 提前准备好自己的笔记本和技术呦。 1.码客帮:https://www.make8.com/ 码客帮是一个基于众包的互联网软件技术服务平台,建立项目需求方与技术大牛的连接。帮助需求方快速找到靠…