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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。