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之入门(四)运算
May 27 Python
python使用cPickle模块序列化实例
Sep 25 Python
Python Queue模块详解
Nov 30 Python
python实现通过pil模块对图片格式进行转换的方法
Mar 24 Python
python中偏函数partial用法实例分析
Jul 08 Python
pandas 对series和dataframe进行排序的实例
Jun 09 Python
实例讲解Python3中abs()函数
Feb 19 Python
PyCharm 无法 import pandas 程序卡住的解决方式
Mar 09 Python
pyinstaller将含有多个py文件的python程序做成exe
Apr 29 Python
Django全局启用登陆验证login_required的方法
Jun 02 Python
五分钟带你搞懂python 迭代器与生成器
Aug 30 Python
Python中22个万用公式的小结
Jul 21 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 简单日历实现代码
2009/10/28 PHP
PHP中改变图片的尺寸大小的代码
2011/07/17 PHP
简单实用的.net DataTable导出Execl
2013/10/28 PHP
PHP 字符串长度判断效率更高的方法
2014/03/02 PHP
[原创]ThinkPHP中SHOW_RUN_TIME不能正常显示运行时间的解决方法
2015/10/10 PHP
php数组冒泡排序算法实例
2016/05/06 PHP
PHP实现支付宝即时到账功能
2016/12/21 PHP
ThinkPHP5.1表单令牌Token失效问题的解决
2019/03/22 PHP
Javascript根据指定下标或对象删除数组元素
2012/12/21 Javascript
可简单避免的三个JS发布错误的详细介绍
2013/08/02 Javascript
jquery动态添加option示例
2013/12/30 Javascript
JavaScript生成SQL查询表单的方法
2015/08/13 Javascript
JS简单模拟触发按钮点击功能的方法
2015/11/30 Javascript
JS实现关闭当前页而不弹出提示框的方法
2016/06/22 Javascript
详解JS对象封装的常用方式
2016/12/30 Javascript
nodejs检测因特网是否断开的解决方案
2019/04/17 NodeJs
layui使用数据表格实现购物车功能
2019/07/26 Javascript
分享一款超好用的JavaScript 打包压缩工具
2020/04/26 Javascript
[02:11]2016国际邀请赛中国区预选赛最美TA采访现场玩家
2016/06/28 DOTA
Python的print用法示例
2014/02/11 Python
浅析Python编写函数装饰器
2016/03/18 Python
Python利用scapy实现ARP欺骗的方法
2019/07/23 Python
使用 Python 读取电子表格中的数据实例详解
2020/04/17 Python
详解Python 最短匹配模式
2020/07/29 Python
python用分数表示矩阵的方法实例
2021/01/11 Python
html5 offlline 缓存使用示例
2013/06/24 HTML / CSS
一个不错的HTML5 Canvas多层点击事件监听实例
2014/04/29 HTML / CSS
异步传递消息系统的作用
2016/05/01 面试题
小学生学雷锋演讲稿
2014/04/25 职场文书
财务管理专业毕业生求职信
2014/06/02 职场文书
海南召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
个人学习群众路线心得体会
2014/11/05 职场文书
2014年体育工作总结
2014/11/24 职场文书
2015清明节祭奠英烈寄语大全
2015/03/04 职场文书
幼儿园教学工作总结2015
2015/05/12 职场文书
当幸福来敲门观后感
2015/06/01 职场文书