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追加元素到列表的方法
Jul 28 Python
通过Python来使用七牛云存储的方法详解
Aug 07 Python
python 寻找list中最大元素对应的索引方法
Jun 28 Python
Django中使用Celery的方法示例
Nov 29 Python
python 实现selenium断言和验证的方法
Feb 13 Python
python查找重复图片并删除(图片去重)
Jul 16 Python
Python PyInstaller库基本使用方法分析
Dec 12 Python
解决python运行效率不高的问题
Jul 20 Python
Python Opencv轮廓常用操作代码实例解析
Sep 01 Python
使用Python操作MySQL的小技巧
Sep 10 Python
使用Python判断一个文件是否被占用的方法教程
Dec 16 Python
python 提取html文本的方法
May 20 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
收集的DedeCMS一些使用经验
2007/03/17 PHP
微盾PHP脚本加密专家php解密算法
2020/09/13 PHP
window.open的功能全解析
2006/10/10 Javascript
js querySelector和getElementById通过id获取元素的区别
2012/04/20 Javascript
js 本地预览的简单实现方法
2014/02/18 Javascript
jQuery实现鼠标划过修改样式的方法
2015/04/14 Javascript
jquery实现全选、不选、反选的两种方法
2016/09/06 Javascript
使用BootStrap和Metroui设计的metro风格微网站或手机app界面
2016/10/21 Javascript
关于vue-router的beforeEach无限循环的问题解决
2017/09/09 Javascript
AngularJS2 与 D3.js集成实现自定义可视化的方法
2017/12/01 Javascript
关于vue单文件中引用路径的处理方法
2018/01/08 Javascript
浅谈Node 调试工具入门教程
2018/03/20 Javascript
Js经典案例的实例代码
2018/05/10 Javascript
vue移动端项目缓存问题实践记录
2018/10/29 Javascript
Vue侦测相关api的实现方法
2019/05/22 Javascript
Vuex modules模式下mapState/mapMutations的操作实例
2019/10/17 Javascript
react的hooks的用法详解
2020/10/12 Javascript
详解Python中heapq模块的用法
2016/06/28 Python
python通过pip更新所有已安装的包实现方法
2017/05/19 Python
Python 元类实例解析
2018/04/04 Python
django 控制页面跳转的例子
2019/08/06 Python
python DataFrame转dict字典过程详解
2019/12/26 Python
Python实现发票自动校核微信机器人的方法
2020/05/22 Python
如何用python写个模板引擎
2021/01/14 Python
python多线程爬取西刺代理的示例代码
2021/01/30 Python
HTML5视频播放插件 video.js介绍
2018/09/29 HTML / CSS
html5小程序飞入购物车(抛物线绘制运动轨迹点)
2020/10/19 HTML / CSS
Shoes For Crews法国官网:美国领先的防滑鞋设计和制造商
2018/01/01 全球购物
自我鉴定范文300字
2013/10/01 职场文书
学校七一活动方案
2014/01/19 职场文书
创业计划书模版
2014/02/05 职场文书
责任书格式
2015/01/29 职场文书
好好学习保证书
2015/02/26 职场文书
仓库统计员岗位职责
2015/04/14 职场文书
2015年食品安全宣传周活动总结
2015/07/09 职场文书
MySQL创建表操作命令分享
2022/03/25 MySQL