序言
文中的文本及图片来自互联网,仅作学习培训、沟通交流应用,不具备一切商业行为,如有什么问题请立即在线留言以作解决。
基础开发工具
- Python 3.6
- Pycharm
import requests import parsel import threading
有关控制模块 pip 安裝就可以
总体目标网页分析
这一网址有桌面壁纸也是有手机墙纸,還是非常好的 。
网址是静态网页,沒有数据加密 ,能够立即抓取
总体构思
1、先在目录网页页面获得每一张墙纸的详细信息详细地址
2 、在墙纸宝贝详情面获得墙纸真正超清url地址
3、储存墙纸
编码完成
仿真模拟电脑浏览器要求网页页面,获得网页页面数据信息
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()
这儿只挑选抓取前10页的数据信息
从运作截屏和墙纸储存看来,5.5秒的時间 ,安装了215张图片,高效率上边還是能够的,均值测算出来每秒免费下载40张图片。。 。
能够自身去试一下线程同步抓取数据信息哈 ,高效率還是十分高的