本篇文章給大家分享的是有關(guān)怎么在python中利用多線程爬取網(wǎng)站壁紙,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
在農(nóng)安等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作 網(wǎng)站設(shè)計(jì)制作專業(yè)公司,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),營銷型網(wǎng)站,成都外貿(mào)網(wǎng)站建設(shè)公司,農(nóng)安網(wǎng)站建設(shè)費(fèi)用合理。Python主要應(yīng)用于:1、Web開發(fā);2、數(shù)據(jù)科學(xué)研究;3、網(wǎng)絡(luò)爬蟲;4、嵌入式應(yīng)用開發(fā);5、游戲開發(fā);6、桌面應(yīng)用開發(fā)。
· Python 3.6
· Pycharm
網(wǎng)站是靜態(tài)網(wǎng)站,沒有加密,可以直接爬取
1、先在列表頁面獲取每張壁紙的詳情頁地址
2、在壁紙?jiān)斍轫撁娅@取壁紙真實(shí)高清url地址
3、保存地址
模擬瀏覽器請請求網(wǎng)頁,獲取網(wǎng)頁數(shù)據(jù)
這里只選擇爬取前10頁的數(shù)據(jù)
代碼如下
import threading import parsel import requests def get_html(html_url): ''' 獲取網(wǎng)頁源代碼 :param html_url: 網(wǎng)頁url :return: ''' response = requests.get(url=html_url, headers=headers) return response def get_par(html_data): ''' 把 response.text 轉(zhuǎn)換成 selector 對(duì)象 解析提取數(shù)據(jù) :param html_data: response.text :return: selector 對(duì)象 ''' selector = parsel.Selector(html_data) return selector def download(img_url, title): ''' 保存數(shù)據(jù) :param img_url: 圖片地址 :param title: 圖片標(biāo)題 :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): ''' 主函數(shù) :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中利用多線程爬取網(wǎng)站壁紙,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
名稱欄目:怎么在python中利用多線程爬取網(wǎng)站壁紙-創(chuàng)新互聯(lián)
本文地址:http://www.rwnh.cn/article34/jdhse.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、電子商務(wù)、App設(shè)計(jì)、動(dòng)態(tài)網(wǎng)站、網(wǎng)站策劃、企業(yè)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容