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实现二分查找算法
Sep 21 Python
从请求到响应过程中django都做了哪些处理
Aug 01 Python
python K近邻算法的kd树实现
Sep 06 Python
Python3简单实现串口通信的方法
Jun 12 Python
10 行Python 代码实现 AI 目标检测技术【推荐】
Jun 14 Python
Django实现发送邮件功能
Jul 18 Python
用Python将Excel数据导入到SQL Server的例子
Aug 24 Python
pycharm内无法import已安装的模块问题解决
Feb 12 Python
信号生成及DFT的python实现方式
Feb 25 Python
python 实现弹球游戏的示例代码
Nov 17 Python
python爬虫请求头的使用
Dec 01 Python
python matplotlib工具栏源码探析三之添加、删除自定义工具项的案例详解
Feb 25 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 $_SERVER["REQUEST_URI"]获取值的通用解决方法
2010/06/21 PHP
PHP开发需要注意的安全问题
2010/09/01 PHP
php实现将任意进制数转换成10进制的方法
2015/04/17 PHP
微信网页授权(OAuth2.0) PHP 源码简单实现
2016/08/29 PHP
PHP面向对象程序设计内置标准类,普通数据类型转为对象类型示例
2019/06/12 PHP
PHP实现文件上传后台处理脚本
2020/03/04 PHP
javascript KeyDown、KeyPress和KeyUp事件的区别与联系
2009/12/03 Javascript
深入理解JavaScript系列(13) This? Yes,this!
2012/01/18 Javascript
jquery使用ajax实现微信自动回复插件
2014/04/28 Javascript
jQuery实现只允许输入数字和小数点的方法
2016/03/02 Javascript
BootStrap中jQuery插件Carousel实现轮播广告效果
2017/03/27 jQuery
react-router实现按需加载
2017/05/09 Javascript
原生JS实现日历组件的示例代码
2017/09/22 Javascript
深入掌握 react的 setState的工作机制
2017/09/27 Javascript
一种angular的方法级的缓存注解(装饰器)
2018/03/13 Javascript
浅谈React之状态(State)
2018/09/19 Javascript
js全屏事件fullscreenchange 实现全屏、退出全屏操作
2019/09/17 Javascript
jQuery实现轮播图源码
2019/10/23 jQuery
使用konva和vue-konva库实现拖拽滑块验证功能
2020/04/27 Javascript
javascript实现贪吃蛇小游戏
2020/07/28 Javascript
Vue实现返回顶部按钮实例代码
2020/10/21 Javascript
[18:16]sakonoko 2017年卡尔集锦
2018/02/06 DOTA
Python爬取三国演义的实现方法
2016/09/12 Python
Python中生成器和迭代器的区别详解
2018/02/10 Python
Python爬虫常用小技巧之设置代理IP
2018/09/13 Python
Python使用dict.fromkeys()快速生成一个字典示例
2019/04/24 Python
Python实现Mysql数据统计及numpy统计函数
2019/07/15 Python
详解基于python的多张不同宽高图片拼接成大图
2019/09/26 Python
浅析python redis的连接及相关操作
2019/11/07 Python
Currentbody法国:健康与美容高科技产品
2020/08/16 全球购物
《跨越海峡的生命桥》教学反思
2014/02/24 职场文书
区政府领导班子个人对照检查材料
2014/09/25 职场文书
个人合伙协议书范本
2014/10/14 职场文书
开发一个封装iframe的vue组件
2021/03/29 Vue.js
python学习之panda数据分析核心支持库
2021/05/07 Python
python中 Flask Web 表单的使用方法
2022/05/20 Python