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守护进程(daemon)代码实例
Mar 06 Python
Python中函数的参数传递与可变长参数介绍
Jun 30 Python
Python使用urllib2模块抓取HTML页面资源的实例分享
May 03 Python
python:socket传输大文件示例
Jan 18 Python
浅谈Python peewee 使用经验
Oct 20 Python
Python决策树和随机森林算法实例详解
Jan 30 Python
在VS Code上搭建Python开发环境的方法
Apr 06 Python
利用Python实现Shp格式向GeoJSON的转换方法
Jul 09 Python
Django的models中on_delete参数详解
Jul 16 Python
Python实现word2Vec model过程解析
Dec 16 Python
Python单链表原理与实现方法详解
Feb 22 Python
matplotlib教程——强大的python作图工具库
Oct 15 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
一键生成各种尺寸Icon的php脚本(实例)
2017/02/08 PHP
javascript实现轮显新闻标题链接
2007/08/13 Javascript
jquery获得keycode的示例代码
2013/12/30 Javascript
用IE重起计算机或者关机的示例代码
2014/03/10 Javascript
引入autocomplete组件时JS报未结束字符串常量错误
2014/03/19 Javascript
js函数参数设置默认值的一种变通实现方法
2014/05/26 Javascript
JavaScript中String.match()方法的使用详解
2015/06/06 Javascript
Angular的Bootstrap(引导)和Compiler(编译)机制
2016/06/20 Javascript
Vue.js动态添加、删除选题的实例代码
2016/09/30 Javascript
URL中“#” “?” &“”号的作用浅析
2017/02/04 Javascript
vue-cli之router基本使用方法详解
2017/10/17 Javascript
js取0-9随机取4个数不重复的数字代码实例
2019/03/27 Javascript
JS快速实现简单计算器
2020/04/08 Javascript
js实现带有动画的返回顶部
2020/08/09 Javascript
python写的一个squid访问日志分析的小程序
2014/09/17 Python
python optparse模块使用实例
2015/04/09 Python
Python实现简单截取中文字符串的方法
2015/06/15 Python
Python 搭建Web站点之Web服务器网关接口
2016/11/06 Python
python表格存取的方法
2018/03/07 Python
python 定义n个变量方法 (变量声明自动化)
2018/11/10 Python
Python 实现取矩阵的部分列,保存为一个新的矩阵方法
2018/11/14 Python
Python turtle库绘制菱形的3种方式小结
2019/11/23 Python
pytorch模型存储的2种实现方法
2020/02/14 Python
Python中zip()函数的解释和可视化(实例详解)
2020/02/16 Python
通过python 执行 nohup 不生效的解决
2020/04/16 Python
Python 字节流,字符串,十六进制相互转换实例(binascii,bytes)
2020/05/11 Python
解决Pycharm 中遇到Unresolved reference 'sklearn'的问题
2020/07/13 Python
python和go语言的区别是什么
2020/07/20 Python
移动端html5判断是否滚动到底部并且下拉加载
2019/11/19 HTML / CSS
俄罗斯三星品牌商店:GalaxyStore
2020/11/04 全球购物
数据库测试通常都包括哪些方面
2015/11/30 面试题
学生实习推荐信范文
2013/11/26 职场文书
护理中职生求职信范文
2014/02/24 职场文书
人事专员的职责
2014/02/26 职场文书
2014年销售助理工作总结
2014/12/01 职场文书
房地产公司工程部经理岗位职责
2015/04/09 职场文书