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 相关文章推荐
新手常见6种的python报错及解决方法
Mar 09 Python
浅谈解除装饰器作用(python3新增)
Oct 15 Python
pycharm 实现显示project 选项卡的方法
Jan 17 Python
pandas计数 value_counts()的使用
Jun 24 Python
Python 自动登录淘宝并保存登录信息的方法
Sep 04 Python
python turtle工具绘制四叶草的实例分享
Feb 14 Python
pandas数据处理之绘图的实现
Jun 15 Python
利用Python中的Xpath实现一个在线汇率转换器
Sep 09 Python
Python制作简单的剪刀石头布游戏
Dec 10 Python
Python爬虫数据的分类及json数据使用小结
Mar 29 Python
Python中的min及返回最小值索引的操作
May 10 Python
给numpy.array增加维度的超简单方法
Jun 02 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在不同页面间传递Json数据示例代码
2013/06/08 PHP
php遍历类中包含的所有元素的方法
2015/05/12 PHP
Laravel5.1自定义500错误页面示例
2016/10/09 PHP
PHP耦合设计模式实例分析
2018/08/08 PHP
深入理解JavaScript高级之词法作用域和作用域链
2013/12/10 Javascript
jQuery中的Deferred和promise 的区别
2016/04/03 Javascript
浅析在javascript中创建对象的各种模式
2016/05/06 Javascript
【经验总结】编写JavaScript代码时应遵循的14条规律
2016/06/20 Javascript
JavaScript中return用法示例
2016/11/29 Javascript
你应该了解的JavaScript Array.map()五种用途小结
2018/11/14 Javascript
jQuery模仿ToDoList实现简单的待办事项列表
2019/12/30 jQuery
JS 数组基本用法入门示例解析
2020/01/16 Javascript
[06:53]2018DOTA2国际邀请赛寻真——为复仇而来的Newbee
2018/08/15 DOTA
python基础教程之popen函数操作其它程序的输入和输出示例
2014/02/10 Python
介绍Python中的一些高级编程技巧
2015/04/02 Python
python自定义异常实例详解
2017/07/11 Python
Python机器学习算法之k均值聚类(k-means)
2018/02/23 Python
Numpy掩码式数组详解
2018/04/17 Python
对python 多线程中的守护线程与join的用法详解
2019/02/18 Python
Python使用Pickle模块进行数据保存和读取的讲解
2019/04/09 Python
在pytorch中对非叶节点的变量计算梯度实例
2020/01/10 Python
Python批量安装卸载1000个apk的方法
2020/04/10 Python
Keras自动下载的数据集/模型存放位置介绍
2020/06/19 Python
Django数据统计功能count()的使用
2020/11/30 Python
CSS3伪类选择器:nth-child()
2009/04/02 HTML / CSS
HomeAway的巴西品牌:Alugue Temporada
2018/04/10 全球购物
日本最大级玩偶手办购物:あみあみ Amiami
2018/04/23 全球购物
超市国庆节促销方案
2014/02/20 职场文书
小学开学典礼主持词
2014/03/19 职场文书
查摆问题自我剖析材料
2014/08/18 职场文书
晚自修旷课检讨书怎么写
2014/11/17 职场文书
2016年第29个世界无烟日宣传活动总结
2016/04/06 职场文书
vue中三级导航的菜单权限控制
2021/03/31 Vue.js
pytorch 一行代码查看网络参数总量的实现
2021/05/12 Python
一文搞懂Redis中String数据类型
2022/04/03 Redis
vue route新窗口跳转页面并且携带与接收参数
2022/04/10 Vue.js