python 多线程爬取壁纸网站的示例
基本开发环境
·Python3.6
·Pycharm
需要导入的库
目标网页分析
网站是静态网站,没有加密,可以直接爬取
整体思路:
1、先在列表页面获取每张壁纸的详情页地址
2、在壁纸详情页面获取壁纸真实高清url地址
3、保存地址
代码实现
模拟浏览器请请求网页,获取网页数据
这里只选择爬取前10页的数据
代码如下
importthreading
importparsel
importrequests
defget_html(html_url):
'''
获取网页源代码
:paramhtml_url:网页url
:return:
'''
response=requests.get(url=html_url,headers=headers)
returnresponse
defget_par(html_data):
'''
把response.text转换成selector对象解析提取数据
:paramhtml_data:response.text
:return:selector对象
'''
selector=parsel.Selector(html_data)
returnselector
defdownload(img_url,title):
'''
保存数据
:paramimg_url:图片地址
:paramtitle:图片标题
:return:
'''
content=get_html(img_url).content
path='壁纸\\'+title+'.jpg'
withopen(path,mode='wb')asf:
f.write(content)
print('正在保存',title)
defmain(url):
'''
主函数
:paramurl:列表页面url
:return:
'''
html_data=get_html(url).text
selector=get_par(html_data)
lis=selector.css('.wb_listboxdivdldda::attr(href)').getall()
forliinlis:
img_data=get_html(li).text
img_selector=get_par(img_data)
img_url=img_selector.css('.wb_showpic_mainimg::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__':
forpageinrange(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爬取壁纸网站的资料请关注毛票票其它相关文章!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。