python 多线程爬取壁纸网站的示例


Posted in Python onFebruary 20, 2021

基本开发环境

· Python 3.6

· Pycharm

需要导入的库

python 多线程爬取壁纸网站的示例

目标网页分析

python 多线程爬取壁纸网站的示例

网站是静态网站,没有加密,可以直接爬取

python 多线程爬取壁纸网站的示例

python 多线程爬取壁纸网站的示例

python 多线程爬取壁纸网站的示例

整体思路:

1、先在列表页面获取每张壁纸的详情页地址

2、在壁纸详情页面获取壁纸真实高清url地址

3、保存地址

代码实现

模拟浏览器请请求网页,获取网页数据

 python 多线程爬取壁纸网站的示例

这里只选择爬取前10页的数据

代码如下

import threading
import parsel
import requests

def get_html(html_url):
 '''
 获取网页源代码
 :param html_url: 网页url
 :return:
 '''
 response = requests.get(url=html_url, headers=headers)
 return response


def get_par(html_data):
 '''
 把 response.text 转换成 selector 对象 解析提取数据
 :param html_data: response.text
 :return: selector 对象
 '''
 selector = parsel.Selector(html_data)
 return selector

def download(img_url, title):
 '''
 保存数据
 :param img_url: 图片地址
 :param title: 图片标题
 :return:
 '''
 content = get_html(img_url).content
 path = '壁纸\\' + title + '.jpg'
 with open(path, mode='wb') as f:
  f.write(content)
  print('正在保存', title)

def main(url):
 '''
 主函数
 :param url: 列表页面 url
 :return:
 '''
 html_data = get_html(url).text
 selector = get_par(html_data)
 lis = selector.css('.wb_listbox div dl dd a::attr(href)').getall()
 for li in lis:
  img_data = get_html(li).text
  img_selector = get_par(img_data)
  img_url = img_selector.css('.wb_showpic_main img::attr(src)').get()
  title = img_selector.css('.wb_pictitle::text').get().strip()
  download(img_url, title)
 end_time = time.time() - s_time
 print(end_time)

if __name__ == '__main__':
 for page in range(1, 11):
  url = 'http://www.deskbizhi.com/min/list-{}.html'.format(page)
  main_thread = threading.Thread(target=main, args=(url,))
  main_thread.start()

以上就是python 多线程爬取壁纸网站的示例的详细内容,更多关于python 爬取壁纸网站的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
全面解读Python Web开发框架Django
Jun 30 Python
python让图片按照exif信息里的创建时间进行排序的方法
Mar 16 Python
Python正则表达式非贪婪、多行匹配功能示例
Aug 08 Python
Python实现的桶排序算法示例
Nov 29 Python
Python多进程与服务器并发原理及用法实例分析
Aug 21 Python
Python之使用adb shell命令启动应用的方法详解
Jan 07 Python
Python多进程写入同一文件的方法
Jan 14 Python
python编程进阶之异常处理用法实例分析
Feb 21 Python
Python脚本如何在bilibili中查找弹幕发送者
Jun 04 Python
pandas将list数据拆分成行或列的实现
Dec 13 Python
Python包管理工具pip的15 个使用小技巧
May 17 Python
Python编程中内置的NotImplemented类型的用法
Mar 23 Python
python 制作网站小说下载器
Feb 20 #Python
如何用python爬取微博热搜数据并保存
Feb 20 #Python
python 统计list中各个元素出现的次数的几种方法
Feb 20 #Python
pandas统计重复值次数的方法实现
Feb 20 #Python
pandas 按日期范围筛选数据的实现
Feb 20 #Python
基于Python-Pycharm实现的猴子摘桃小游戏(源代码)
Feb 20 #Python
pandas按条件筛选数据的实现
Feb 20 #Python
You might like
PHP实现登陆并抓取微信列表中最新一组微信消息的方法
2017/07/10 PHP
php简单读取.vcf格式文件的方法示例
2017/09/02 PHP
讨论javascript(一)工厂方式 js面象对象的定义方法
2009/12/15 Javascript
编写高性能的JavaScript 脚本的加载与执行
2010/04/19 Javascript
用JQuery调用Session的实现代码
2010/10/29 Javascript
js jquery获取随机生成id的服务器控件的三种方法
2013/07/11 Javascript
JS获取图片实际宽高及根据图片大小进行自适应
2013/08/11 Javascript
JS画线(实例代码)
2013/11/20 Javascript
JS连连看源码完美注释版(推荐)
2013/12/09 Javascript
nodejs初步体验篇
2015/11/23 NodeJs
javascript仿京东导航左侧分类导航下拉菜单效果
2020/11/25 Javascript
javascript简单判断输入内容是否合法的方法
2016/05/11 Javascript
实现easyui的datagrid导出为excel的示例代码
2016/11/10 Javascript
js中创建对象的几种方式
2017/02/05 Javascript
jQuery实现文章图片弹出放大效果
2017/04/06 jQuery
在Vue中使用Compass的方法
2018/03/02 Javascript
快速解决处理后台返回json数据格式的问题
2018/08/07 Javascript
Python内置函数之filter map reduce介绍
2014/11/30 Python
Python自然语言处理之词干,词形与最大匹配算法代码详解
2017/11/16 Python
Python之ReportLab绘制条形码和二维码的实例
2018/01/15 Python
python实现简单flappy bird
2018/12/24 Python
Python 实现子类获取父类的类成员方法
2019/01/11 Python
Appium+Python自动化测试之运行App程序示例
2019/01/23 Python
pandas去除重复列的实现方法
2019/01/29 Python
Python虚拟环境的原理及使用详解
2019/07/02 Python
Python中私有属性的定义方式
2020/03/05 Python
Selenium获取登录Cookies并添加Cookies自动登录的方法
2020/12/04 Python
酒店实习个人鉴定
2013/12/07 职场文书
大学生党校培训心得体会
2014/09/11 职场文书
庆祝三八妇女节标语
2014/10/09 职场文书
乡镇党的群众路线教育实践活动制度建设计划
2014/11/03 职场文书
2014收银员工作总结范文
2014/12/16 职场文书
新教师2015年度工作总结
2015/07/22 职场文书
申请吧主发表的感言
2015/08/03 职场文书
Vue通过懒加载提升页面响应速度
2021/05/10 Vue.js
Go语言入门exec的基本使用
2022/05/20 Golang