python爬虫爬取某网站图片
学习分享 | 今天刚学完爬虫,就随便写了一个爬虫代码爬取某网站的图片
网站就是这个图片网站,我选的是1080p格式,4k的要会员,我反正是还不会
导入的包如下
import requests
from bs4 import BeautifulSoup
import time
将网址转化为html文件的函数
def ask_url(url):# 模拟浏览器的头部信息head = {"User-Agent": "Mozilla / 5.0(Windows NT 10.0;Win64;x64) AppleWebKit/537.36(KHTML, likeGecko) Chrome/70.0.3538.102Safari/537.36Edge/18.19041"}# 访问页面resp = requests.get(url, headers=head)resp.encoding = "gbk"# 将resp用BeautifulSoup处理并转为text得到主页面bs_resp = BeautifulSoup(resp.text, 'html.parser')return bs_resp
然后解析网站,一步一步获取图片的src链接,注意,由于网站的不同,图片的最终地址可能不同,但一般都是a标签里面的href链接,访问之后就会得到真正的图片src地址,当然有些网站还要再深入一层(比如我这个)
# 解析数据
def get_data(url):count = 0for item in range(0, 500):if item == 0:baseurl = urlelif item == 1:continueelse:baseurl = url + str('index_') + str(item) + str('.htm')# 获取页面中所有的a标签,并在前面加上main_page = ask_url(baseurl)a = main_page.find('div', class_='list').find_all('a')print("已获取主页面的a标签,准备获取子页面的链接")# 获取图片的子页面,a标签href属性值,并在前面加上http://www.netbian.comhttp = 'http://www.netbian.com'for i in a:aHref =http + i.get('href')# 处理脏链接,将链接字符串大于38的舍弃if len(aHref) > 38:continueelse:# 获取子页面chile_page = ask_url(aHref)print("子页面获取成功,准备获取子页面a标签的href值...")chile_page_a = chile_page.find('div', class_='pic').find_all('a')# 我们需要的指向子页面的a标签是第一个,# 所以为了避免重复,新建一个列表存储第一个指向子页面的a标签chile_page_a1 = []chile_page_a1.append(chile_page_a[0])# 遍历子页面中的a标签,获取其中的href标签属性for item1 in chile_page_a1:child_aHref = http + item1.get('href')print('获取子页面的href值成功,准备获取图片页面')# 访问子页面,获取图片页面img_page = ask_url(child_aHref)# 解析图片页面,获取图片页面中的图片srctry:img_src = img_page.find('td').find('img').get('src')except:print('遇到一个错误了')print('获取图片页面成功,准备下载...')# 给图片命名img_name = str(img_src).split('/')[-1]# 访问图片链接img_get = requests.get(img_src)with open('img高清/'+img_name, 'wb') as fwrite:print('重命名中....')fwrite.write(img_get.content)count += 1print('第%d张图片下载完成!' % count)
然后就是设置主函数,设置函数开始执行de 位置
# 爬取图片
# 1.获取目标页面
# 2.1 requests.get获取
# 2.2 urllib.request.Request --> urllib.request.urlopen --> .read()获取
# 2.将页面转化为html文本 BeautifulSoup处理
# 3.若图片不需要从子页面获取,则跳到第6步
# 4.获取a标签中的href属性值(一般是href包含子页面)
# 4.1 正则表达式获取路径
# 4.2 标签名.get("属性名")即可获得该属性名的属性值
# 5.获取子页面,将其转化为html文本
# 6.获取img标签中的src路径
# 7.获取src页面,然后将其转化为字节码文件存储 contentdef main():img_url = 'http://www.netbian.com/1920x1080/'# img_page = get_data(img_url)get_data(img_url)time.sleep(3)
这里访问页面的方法我用的是requests.get,还有另外一种方法也可以,urllib库
设置函数的入口
if __name__ == '__main__':print("开始获取!")main()
以上,我这里设置了sleep,三秒钟访问一次,怕被禁止哈哈哈~
这里是效果图
python爬虫爬取某网站图片相关推荐
- 使用Python爬虫爬取网络美女图片
代码地址如下: http://www.demodashi.com/demo/13500.html 准备工作 安装python3.6 略 安装requests库(用于请求静态页面) pip instal ...
- 利用Python爬虫爬取网页福利图片
最近几天,学习了爬虫算法,通过参考书籍,写下自己简单爬虫项目: 爬取某福利网站的影片海报图片 环境:anaconda3.5+spyder3.2.6 目录 1.本节目标 2.准备工作 3.抓取分析 4. ...
- 用python爬虫爬取网页壁纸图片(彼岸桌面网唯美图片)
参考文章:https://www.cnblogs.com/franklv/p/6829387.html 今天想给我的电脑里面多加点壁纸,但是嫌弃一个个保存太慢,于是想着写个爬虫直接批量爬取,因为爬虫只 ...
- python唯美壁纸_用python爬虫爬取网页壁纸图片(彼岸桌面网唯美图片)
参考文章:https://www..com/franklv/p/6829387.html 今天想给我的电脑里面多加点壁纸,但是嫌弃一个个保存太慢,于是想着写个爬虫直接批量爬取,因为爬虫只是很久之前学过 ...
- 用Python 爬虫爬取贴吧图片
之前一直在看机器学习,遇到了一些需要爬取数据的内容,于是稍微看了看Python爬虫,在此适当做一个记录.我也没有深入研究爬虫,大部分均是参考了网上的资源. 先推荐两个Python爬虫的教程,网址分别是 ...
- python爬虫爬取网页壁纸图片(《底特律:变人》)
参考文章:https://www.cnblogs.com/franklv/p/6829387.html 爬虫爬取网址:http://www.gamersky.com/news/201804/10396 ...
- python爬虫爬取某网站全站图片案列(源码全给可白漂,仅供学习使用,切勿用作非法用途)
爬取后保存的图片效果图 步骤入下(三步): 先去要爬取的目标网站(https://pixabay.com/)去注册一个账号. 2.注册后登录,浏览器右键鼠标,打开检查,找到登录后的cookies值. ...
- python爬虫爬取汽车网站外型图片
我选择的起始网址:http://www.hao123.com/auto/brand 当你随便选择一个车牌的选框( 不要 同时选择多个选框)你就会发现每个车牌对应一个网址 每个网址的区别就是数字不同 比 ...
- python爬虫 爬取小姐姐图片
前言 大致熟悉了python的基础语法以后,开始学习爬虫基础. 一.爬取前的准备工作 python3.7环境(只要是python3版本都可以): 依赖包 : time requests re (缺少包 ...
最新文章
- 【BZOJ2738】矩阵乘法 [整体二分][树状数组]
- Drupal8系列(五):主题制作之搭建框架-Ubuntu 14.04 LTS
- GIS 中openstreetmap数据获取
- AJAX-jQuery实现Ajax
- java 缓存分页_基于redis做缓存分页
- [数分提高]2014-2015-2第9教学周第1次课 (2015-04-28)
- grumble.js--气泡形状的提示(Tooltip)控件
- [转]IE6对!important支持不彻底
- @程序员,除了女朋友你还要带什么回去?
- 凸优化第六章逼近与拟合 6.2 最小范数问题
- jstat 监控调整GC很好用
- IE 9 beta 下载地址
- 计算机怎样更新目录,怎么在word中设置自动更新目录功能
- Executing an update/delete query
- 通常所说的微型计算机的主机主要包括(),微型计算机的主机主要包括
- python制作七夕礼物_OpenCV+Python制作程序七夕(情人节)礼物
- 物化视图、普通视图及其区别
- JavaScript中的Event.target
- 【WCN685X】WCN6856 5G吞吐量测试只有25Mbps问题原因分析及解决方案
- [288]关于MySQL的1064错误