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 相关文章推荐
pygame学习笔记(1):矩形、圆型画图实例
Apr 15 Python
Python的Flask框架中使用Flask-Migrate扩展迁移数据库的教程
Jun 14 Python
Python利用IPython提高开发效率
Aug 10 Python
Python 模块EasyGui详细介绍
Feb 19 Python
Python实现通讯录功能
Feb 22 Python
python实现教务管理系统
Mar 12 Python
python导入模块交叉引用的方法
Jan 19 Python
使用pycharm在本地开发并实时同步到服务器
Aug 02 Python
Python 动态变量名定义与调用方法
Feb 09 Python
python标准库sys和OS的函数使用方法与实例详解
Feb 12 Python
使用python接受tgam的脑波数据实例
Apr 09 Python
python中的列表和元组区别分析
Dec 30 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
《破坏领主》销量已超100万 未来将继续开发新内容
2020/03/08 其他游戏
使用GD库生成带阴影文字的图片
2015/03/27 PHP
PHP中的常见魔术方法功能作用及用法实例
2015/07/01 PHP
PHP实现补齐关闭的HTML标签
2016/03/22 PHP
PHP+Ajax实现验证码的实时验证
2016/07/20 PHP
Laravel用户授权系统的使用方法示例
2018/09/16 PHP
javascript 点击整页变灰的效果(可做退出效果)。
2008/01/09 Javascript
js取消单选按钮选中并判断对象是否为空
2013/11/14 Javascript
JavaScript子类用Object.getPrototypeOf去调用父类方法解析
2013/12/05 Javascript
javascript中cookie对象用法实例分析
2015/01/30 Javascript
使用jsonp实现跨域获取数据实例讲解
2016/12/25 Javascript
NodeJs测试框架Mocha的安装与使用
2017/03/28 NodeJs
JS 实现banner图片轮播效果(鼠标事件)
2017/08/04 Javascript
nodejs发送http请求时遇到404长时间未响应的解决方法
2017/12/10 NodeJs
详解ES6通过WeakMap解决内存泄漏问题
2018/03/09 Javascript
webpack 从指定入口文件中提取公共文件的方法
2018/11/13 Javascript
Python生成随机数的方法
2014/01/14 Python
浅谈Python数据类型判断及列表脚本操作
2016/11/04 Python
pandas分别写入excel的不同sheet方法
2018/12/11 Python
Python3enumrate和range对比及示例详解
2019/07/13 Python
Python GUI之tkinter窗口视窗教程大集合(推荐)
2020/10/20 Python
Python用dilb提取照片上人脸的示例
2020/10/26 Python
草莓网中国:StrawberryNet中国
2020/08/17 全球购物
法律工作求职自荐信
2013/10/31 职场文书
生产经理的自我评价分享
2013/11/07 职场文书
校长岗位职责
2013/11/26 职场文书
教师职称自我鉴定
2014/02/12 职场文书
《歌唱二小放牛郎》教学反思
2014/04/19 职场文书
党委领导班子整改方案
2014/09/30 职场文书
技术入股合作协议书
2014/10/07 职场文书
习近平在党的群众路线教育实践活动总结大会上的讲话
2014/10/21 职场文书
党的作风建设心得体会
2014/10/22 职场文书
2014年医院后勤工作总结
2014/12/06 职场文书
2015年保险业务员工作总结
2015/05/27 职场文书
导游词之上海东方明珠塔
2019/09/25 职场文书
python实现MD5进行文件去重的示例代码
2021/07/09 Python