前沿拓展:
e8瀏覽器下載
e8瀏覽器瀏覽器不能在手機(jī)上安裝使用,你可以試試手機(jī)360瀏覽器。功能上比較全面,**作簡(jiǎn)單,安裝包小,運(yùn)行也很穩(wěn)定、而且還可以省流量。
吶,這是一篇福利教程.為什么這么說呢?我們要爬取的內(nèi)容是美圖網(wǎng)站(嘿嘿,老司機(jī)都懂的)
廢話不多說,開始今天的表演。
這個(gè)圖集網(wǎng)站不要問我怎么來的,絕對(duì)不是我刻意找的。
我們今天的任務(wù)就是 將這些圖集保存下來。
第一我們需要獲取到所有的列表,我們往下拉動(dòng)滾動(dòng)條,拉到底,會(huì)繼續(xù)自動(dòng)加載內(nèi)容,我們通過瀏覽器的NetWork可以發(fā)現(xiàn)請(qǐng)求的數(shù)據(jù)包
我們來分析一下這個(gè)數(shù)據(jù)包
URL:https://www.toutiao.com/search_content/?offset=0&format=json&keyword=%E6%B8%85%E7%BA%AF%E7%BE%8E%E5%A5%B3&autoload=true&count=20&cur_tab=3&from=gallery
通過url我們可以知道幾個(gè)重要的參數(shù)
offset 偏移量
count 數(shù)量
cur_tab 當(dāng)前分類
這里很多朋友可能對(duì)偏移量不太了解,這里我用sql語句表示一下,如果了解sql的朋友 肯定就知道了
mysql> SELECT * FROM art LIMIT offset , countmysql> SELECT * FROM table LIMIT 5,10; // 檢索記錄行 6-15
mysql> SELECT * FROM table LIMIT 95,1; // 檢索記錄行 96
這里我每次讀取一條,對(duì)一條進(jìn)行**作.
URL:https://www.toutiao.com/search_content/?offset=1&format=json&keyword=%E6%B8%85%E7%BA%AF%E7%BE%8E%E5%A5%B3&autoload=true&count=1&cur_tab=3&from=gallery
每次對(duì)offset 進(jìn)行自增即可了
我們點(diǎn)擊進(jìn)去 看看數(shù)據(jù)的結(jié)構(gòu)。
我們需要獲取到該圖集的鏈接。
進(jìn)入這篇圖集,在NetWork中并沒有發(fā)現(xiàn)圖集有關(guān)的請(qǐng)求接口,可能也是混排的。
我們可以查看頁面的源碼
原來真的是混排的寫法.看了一下這里用到vue.具體怎么實(shí)現(xiàn)的我們不去探討了,我們只需要取出數(shù)據(jù)即可。
那如何取出呢? 提供兩種方法,一種就是正則,一種就是自己寫一個(gè)取文本的函數(shù)。這里我用第二種作為演示,下面是取文本的函數(shù)。
def txt_wrap_by(start_str, end, html): start = html.find(start_str) if start >= 0: start += len(start_str) end = html.find(end, start) if end >= 0:
return html[start:end].strip()
我們?nèi)〕?JSON.parse(“”) 中的數(shù)據(jù)
觀察數(shù)據(jù),可以發(fā)現(xiàn) 我們?nèi)〕?url 就可以了,這里的數(shù)據(jù)是json但是被轉(zhuǎn)義了,我們就通過正則取出吧
正則的語法如圖上,最后我也會(huì)放出所有代碼滴,大家放心。
取到了uri 我們只要在前面拼上 http://p1.toutiaoimg.com/ 即可。
第二保存為圖片即可~
上面說的都是思路,最后放出代碼~
#coding:utf-8import requests,os,json,re,uuid# 主函數(shù)def main(): foreach_art_list()def foreach_art_list(): # 判斷目錄下是否存在jilv.txt文件 如果存在則讀取里面的數(shù)值 if os.path.exists(‘./jilv.txt’): f = open(‘./jilv.txt’) n = f.read() n = int(n) f.close() else: n = 1 while True: url = ‘http://www.toutiao.com/search_content/?offset=’ + str(n) + ‘&format=json&keyword=%E6%B8%85%E7%BA%AF%E7%BE%8E%E5%A5%B3&autoload=true&count=1&cur_tab=3&from=gallery’ re = requests.get(url) data = re.json()[‘data’] if not data: break # 運(yùn)行圖片下載函數(shù) download_pic(data[0][‘article_url’],n) n = n+1 # 將n寫入文件 防止程序運(yùn)行出錯(cuò) 可以繼續(xù)運(yùn)行 with open(‘./jilv.txt’, ‘w’) as f: f.write(str(n))def download_pic(url,n): download_pic_url = ‘http://p1.toutiaoimg.com/’ # 這里必須帶上協(xié)議頭,否則會(huì)請(qǐng)求失敗 header = { ‘user-agent’:’Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.162 Safari/537.36′ } res = requests.get(url,headers = header) content = res.text img_list_json = txt_wrap_by(‘gallery: JSON.parse(“‘,'”),’,content) # 正則獲取所有的uri img_list = re.findall(r’uri\\”:\\”(.*?)\\”‘,img_list_json) #判斷是否有此目錄 if ‘img’ not in os.listdir(‘.’): os.mkdir(‘./img’) if str(n) not in os.listdir(‘./img’): os.mkdir(‘./img/’+str(n)) for v in img_list: img_path = download_pic_url + v img_path = img_path.replace(“\\”, “”) # 讀取圖片 atlas = requests.get(img_path).content # 保存圖片 with open( ‘./img/’ + str(n) + ‘/’ + str(uuid.uuid1()) +’.jpg’, ‘wb’) as f: # 把圖片寫入文件內(nèi) f.write(atlas)# 取出兩個(gè)文本之間的內(nèi)容def txt_wrap_by(start_str, end, html): start = html.find(start_str) if start >= 0: start += len(start_str) end = html.find(end, start) if end >= 0: return html[start:end].strip()# 運(yùn)行程序
main()
最后 展示一下 運(yùn)行結(jié)果:
這個(gè)程序還有許多不完善的地方,我會(huì)在之后教程加入 redis 和 多線程 的寫法,讓它成為最快的爬蟲~
敬請(qǐng)期待~ 今天就到這里了。嘿嘿~ 看我的美圖去了。
拓展知識(shí):
e8瀏覽器下載
瀏覽器在手機(jī)上 能下載 要按照**作 一步一步來 下載需要占用內(nèi)存空間 請(qǐng)根據(jù)自己手機(jī)的情況進(jìn)行下載 瀏覽器在手機(jī)上 能下載 要按照**作 一步一步來 下載需要占用內(nèi)存空間 請(qǐng)根據(jù)自己的手機(jī)的情況進(jìn)行下載
e8瀏覽器下載
L e8瀏覽器手機(jī)是可以下載的,你可以根據(jù)提示一步一步的下載下載,最好去正規(guī)的廉潔下載官方認(rèn)證的下載這個(gè)比較安全,沒有什么風(fēng)險(xiǎn),現(xiàn)在網(wǎng)上有**的軟件太多了,不能隨意點(diǎn)的,要小心謹(jǐn)慎,確認(rèn)后沒有**,安全無誤才可以下載
e8瀏覽器下載
能下載的,看你自己了
前沿拓展:
e8瀏覽器下載
e8瀏覽器瀏覽器不能在手機(jī)上安裝使用,你可以試試手機(jī)360瀏覽器。功能上比較全面,**作簡(jiǎn)單,安裝包小,運(yùn)行也很穩(wěn)定、而且還可以省流量。
吶,這是一篇福利教程.為什么這么說呢?我們要爬取的內(nèi)容是美圖網(wǎng)站(嘿嘿,老司機(jī)都懂的)
廢話不多說,開始今天的表演。
這個(gè)圖集網(wǎng)站不要問我怎么來的,絕對(duì)不是我刻意找的。
我們今天的任務(wù)就是 將這些圖集保存下來。
第一我們需要獲取到所有的列表,我們往下拉動(dòng)滾動(dòng)條,拉到底,會(huì)繼續(xù)自動(dòng)加載內(nèi)容,我們通過瀏覽器的NetWork可以發(fā)現(xiàn)請(qǐng)求的數(shù)據(jù)包
我們來分析一下這個(gè)數(shù)據(jù)包
URL:https://www.toutiao.com/search_content/?offset=0&format=json&keyword=%E6%B8%85%E7%BA%AF%E7%BE%8E%E5%A5%B3&autoload=true&count=20&cur_tab=3&from=gallery
通過url我們可以知道幾個(gè)重要的參數(shù)
offset 偏移量
count 數(shù)量
cur_tab 當(dāng)前分類
這里很多朋友可能對(duì)偏移量不太了解,這里我用sql語句表示一下,如果了解sql的朋友 肯定就知道了
mysql> SELECT * FROM art LIMIT offset , countmysql> SELECT * FROM table LIMIT 5,10; // 檢索記錄行 6-15
mysql> SELECT * FROM table LIMIT 95,1; // 檢索記錄行 96
這里我每次讀取一條,對(duì)一條進(jìn)行**作.
URL:https://www.toutiao.com/search_content/?offset=1&format=json&keyword=%E6%B8%85%E7%BA%AF%E7%BE%8E%E5%A5%B3&autoload=true&count=1&cur_tab=3&from=gallery
每次對(duì)offset 進(jìn)行自增即可了
我們點(diǎn)擊進(jìn)去 看看數(shù)據(jù)的結(jié)構(gòu)。
我們需要獲取到該圖集的鏈接。
進(jìn)入這篇圖集,在NetWork中并沒有發(fā)現(xiàn)圖集有關(guān)的請(qǐng)求接口,可能也是混排的。
我們可以查看頁面的源碼
原來真的是混排的寫法.看了一下這里用到vue.具體怎么實(shí)現(xiàn)的我們不去探討了,我們只需要取出數(shù)據(jù)即可。
那如何取出呢? 提供兩種方法,一種就是正則,一種就是自己寫一個(gè)取文本的函數(shù)。這里我用第二種作為演示,下面是取文本的函數(shù)。
def txt_wrap_by(start_str, end, html): start = html.find(start_str) if start >= 0: start += len(start_str) end = html.find(end, start) if end >= 0:
return html[start:end].strip()
我們?nèi)〕?JSON.parse(“”) 中的數(shù)據(jù)
觀察數(shù)據(jù),可以發(fā)現(xiàn) 我們?nèi)〕?url 就可以了,這里的數(shù)據(jù)是json但是被轉(zhuǎn)義了,我們就通過正則取出吧
正則的語法如圖上,最后我也會(huì)放出所有代碼滴,大家放心。
取到了uri 我們只要在前面拼上 http://p1.toutiaoimg.com/ 即可。
第二保存為圖片即可~
上面說的都是思路,最后放出代碼~
#coding:utf-8import requests,os,json,re,uuid# 主函數(shù)def main(): foreach_art_list()def foreach_art_list(): # 判斷目錄下是否存在jilv.txt文件 如果存在則讀取里面的數(shù)值 if os.path.exists(‘./jilv.txt’): f = open(‘./jilv.txt’) n = f.read() n = int(n) f.close() else: n = 1 while True: url = ‘http://www.toutiao.com/search_content/?offset=’ + str(n) + ‘&format=json&keyword=%E6%B8%85%E7%BA%AF%E7%BE%8E%E5%A5%B3&autoload=true&count=1&cur_tab=3&from=gallery’ re = requests.get(url) data = re.json()[‘data’] if not data: break # 運(yùn)行圖片下載函數(shù) download_pic(data[0][‘article_url’],n) n = n+1 # 將n寫入文件 防止程序運(yùn)行出錯(cuò) 可以繼續(xù)運(yùn)行 with open(‘./jilv.txt’, ‘w’) as f: f.write(str(n))def download_pic(url,n): download_pic_url = ‘http://p1.toutiaoimg.com/’ # 這里必須帶上協(xié)議頭,否則會(huì)請(qǐng)求失敗 header = { ‘user-agent’:’Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.162 Safari/537.36′ } res = requests.get(url,headers = header) content = res.text img_list_json = txt_wrap_by(‘gallery: JSON.parse(“‘,'”),’,content) # 正則獲取所有的uri img_list = re.findall(r’uri\\”:\\”(.*?)\\”‘,img_list_json) #判斷是否有此目錄 if ‘img’ not in os.listdir(‘.’): os.mkdir(‘./img’) if str(n) not in os.listdir(‘./img’): os.mkdir(‘./img/’+str(n)) for v in img_list: img_path = download_pic_url + v img_path = img_path.replace(“\\”, “”) # 讀取圖片 atlas = requests.get(img_path).content # 保存圖片 with open( ‘./img/’ + str(n) + ‘/’ + str(uuid.uuid1()) +’.jpg’, ‘wb’) as f: # 把圖片寫入文件內(nèi) f.write(atlas)# 取出兩個(gè)文本之間的內(nèi)容def txt_wrap_by(start_str, end, html): start = html.find(start_str) if start >= 0: start += len(start_str) end = html.find(end, start) if end >= 0: return html[start:end].strip()# 運(yùn)行程序
main()
最后 展示一下 運(yùn)行結(jié)果:
這個(gè)程序還有許多不完善的地方,我會(huì)在之后教程加入 redis 和 多線程 的寫法,讓它成為最快的爬蟲~
敬請(qǐng)期待~ 今天就到這里了。嘿嘿~ 看我的美圖去了。
拓展知識(shí):
e8瀏覽器下載
瀏覽器在手機(jī)上 能下載 要按照**作 一步一步來 下載需要占用內(nèi)存空間 請(qǐng)根據(jù)自己手機(jī)的情況進(jìn)行下載 瀏覽器在手機(jī)上 能下載 要按照**作 一步一步來 下載需要占用內(nèi)存空間 請(qǐng)根據(jù)自己的手機(jī)的情況進(jìn)行下載
e8瀏覽器下載
L e8瀏覽器手機(jī)是可以下載的,你可以根據(jù)提示一步一步的下載下載,最好去正規(guī)的廉潔下載官方認(rèn)證的下載這個(gè)比較安全,沒有什么風(fēng)險(xiǎn),現(xiàn)在網(wǎng)上有**的軟件太多了,不能隨意點(diǎn)的,要小心謹(jǐn)慎,確認(rèn)后沒有**,安全無誤才可以下載
e8瀏覽器下載
能下載的,看你自己了
前沿拓展:
e8瀏覽器下載
e8瀏覽器瀏覽器不能在手機(jī)上安裝使用,你可以試試手機(jī)360瀏覽器。功能上比較全面,**作簡(jiǎn)單,安裝包小,運(yùn)行也很穩(wěn)定、而且還可以省流量。
吶,這是一篇福利教程.為什么這么說呢?我們要爬取的內(nèi)容是美圖網(wǎng)站(嘿嘿,老司機(jī)都懂的)
廢話不多說,開始今天的表演。
這個(gè)圖集網(wǎng)站不要問我怎么來的,絕對(duì)不是我刻意找的。
我們今天的任務(wù)就是 將這些圖集保存下來。
第一我們需要獲取到所有的列表,我們往下拉動(dòng)滾動(dòng)條,拉到底,會(huì)繼續(xù)自動(dòng)加載內(nèi)容,我們通過瀏覽器的NetWork可以發(fā)現(xiàn)請(qǐng)求的數(shù)據(jù)包
我們來分析一下這個(gè)數(shù)據(jù)包
URL:https://www.toutiao.com/search_content/?offset=0&format=json&keyword=%E6%B8%85%E7%BA%AF%E7%BE%8E%E5%A5%B3&autoload=true&count=20&cur_tab=3&from=gallery
通過url我們可以知道幾個(gè)重要的參數(shù)
offset 偏移量
count 數(shù)量
cur_tab 當(dāng)前分類
這里很多朋友可能對(duì)偏移量不太了解,這里我用sql語句表示一下,如果了解sql的朋友 肯定就知道了
mysql> SELECT * FROM art LIMIT offset , countmysql> SELECT * FROM table LIMIT 5,10; // 檢索記錄行 6-15
mysql> SELECT * FROM table LIMIT 95,1; // 檢索記錄行 96
這里我每次讀取一條,對(duì)一條進(jìn)行**作.
URL:https://www.toutiao.com/search_content/?offset=1&format=json&keyword=%E6%B8%85%E7%BA%AF%E7%BE%8E%E5%A5%B3&autoload=true&count=1&cur_tab=3&from=gallery
每次對(duì)offset 進(jìn)行自增即可了
我們點(diǎn)擊進(jìn)去 看看數(shù)據(jù)的結(jié)構(gòu)。
我們需要獲取到該圖集的鏈接。
進(jìn)入這篇圖集,在NetWork中并沒有發(fā)現(xiàn)圖集有關(guān)的請(qǐng)求接口,可能也是混排的。
我們可以查看頁面的源碼
原來真的是混排的寫法.看了一下這里用到vue.具體怎么實(shí)現(xiàn)的我們不去探討了,我們只需要取出數(shù)據(jù)即可。
那如何取出呢? 提供兩種方法,一種就是正則,一種就是自己寫一個(gè)取文本的函數(shù)。這里我用第二種作為演示,下面是取文本的函數(shù)。
def txt_wrap_by(start_str, end, html): start = html.find(start_str) if start >= 0: start += len(start_str) end = html.find(end, start) if end >= 0:
return html[start:end].strip()
我們?nèi)〕?JSON.parse(“”) 中的數(shù)據(jù)
觀察數(shù)據(jù),可以發(fā)現(xiàn) 我們?nèi)〕?url 就可以了,這里的數(shù)據(jù)是json但是被轉(zhuǎn)義了,我們就通過正則取出吧
正則的語法如圖上,最后我也會(huì)放出所有代碼滴,大家放心。
取到了uri 我們只要在前面拼上 http://p1.toutiaoimg.com/ 即可。
第二保存為圖片即可~
上面說的都是思路,最后放出代碼~
#coding:utf-8import requests,os,json,re,uuid# 主函數(shù)def main(): foreach_art_list()def foreach_art_list(): # 判斷目錄下是否存在jilv.txt文件 如果存在則讀取里面的數(shù)值 if os.path.exists(‘./jilv.txt’): f = open(‘./jilv.txt’) n = f.read() n = int(n) f.close() else: n = 1 while True: url = ‘http://www.toutiao.com/search_content/?offset=’ + str(n) + ‘&format=json&keyword=%E6%B8%85%E7%BA%AF%E7%BE%8E%E5%A5%B3&autoload=true&count=1&cur_tab=3&from=gallery’ re = requests.get(url) data = re.json()[‘data’] if not data: break # 運(yùn)行圖片下載函數(shù) download_pic(data[0][‘article_url’],n) n = n+1 # 將n寫入文件 防止程序運(yùn)行出錯(cuò) 可以繼續(xù)運(yùn)行 with open(‘./jilv.txt’, ‘w’) as f: f.write(str(n))def download_pic(url,n): download_pic_url = ‘http://p1.toutiaoimg.com/’ # 這里必須帶上協(xié)議頭,否則會(huì)請(qǐng)求失敗 header = { ‘user-agent’:’Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.162 Safari/537.36′ } res = requests.get(url,headers = header) content = res.text img_list_json = txt_wrap_by(‘gallery: JSON.parse(“‘,'”),’,content) # 正則獲取所有的uri img_list = re.findall(r’uri\\”:\\”(.*?)\\”‘,img_list_json) #判斷是否有此目錄 if ‘img’ not in os.listdir(‘.’): os.mkdir(‘./img’) if str(n) not in os.listdir(‘./img’): os.mkdir(‘./img/’+str(n)) for v in img_list: img_path = download_pic_url + v img_path = img_path.replace(“\\”, “”) # 讀取圖片 atlas = requests.get(img_path).content # 保存圖片 with open( ‘./img/’ + str(n) + ‘/’ + str(uuid.uuid1()) +’.jpg’, ‘wb’) as f: # 把圖片寫入文件內(nèi) f.write(atlas)# 取出兩個(gè)文本之間的內(nèi)容def txt_wrap_by(start_str, end, html): start = html.find(start_str) if start >= 0: start += len(start_str) end = html.find(end, start) if end >= 0: return html[start:end].strip()# 運(yùn)行程序
main()
最后 展示一下 運(yùn)行結(jié)果:
這個(gè)程序還有許多不完善的地方,我會(huì)在之后教程加入 redis 和 多線程 的寫法,讓它成為最快的爬蟲~
敬請(qǐng)期待~ 今天就到這里了。嘿嘿~ 看我的美圖去了。
拓展知識(shí):
e8瀏覽器下載
瀏覽器在手機(jī)上 能下載 要按照**作 一步一步來 下載需要占用內(nèi)存空間 請(qǐng)根據(jù)自己手機(jī)的情況進(jìn)行下載 瀏覽器在手機(jī)上 能下載 要按照**作 一步一步來 下載需要占用內(nèi)存空間 請(qǐng)根據(jù)自己的手機(jī)的情況進(jìn)行下載
e8瀏覽器下載
L e8瀏覽器手機(jī)是可以下載的,你可以根據(jù)提示一步一步的下載下載,最好去正規(guī)的廉潔下載官方認(rèn)證的下載這個(gè)比較安全,沒有什么風(fēng)險(xiǎn),現(xiàn)在網(wǎng)上有**的軟件太多了,不能隨意點(diǎn)的,要小心謹(jǐn)慎,確認(rèn)后沒有**,安全無誤才可以下載
e8瀏覽器下載
能下載的,看你自己了
前沿拓展:
e8瀏覽器下載
e8瀏覽器瀏覽器不能在手機(jī)上安裝使用,你可以試試手機(jī)360瀏覽器。功能上比較全面,**作簡(jiǎn)單,安裝包小,運(yùn)行也很穩(wěn)定、而且還可以省流量。
吶,這是一篇福利教程.為什么這么說呢?我們要爬取的內(nèi)容是美圖網(wǎng)站(嘿嘿,老司機(jī)都懂的)
廢話不多說,開始今天的表演。
這個(gè)圖集網(wǎng)站不要問我怎么來的,絕對(duì)不是我刻意找的。
我們今天的任務(wù)就是 將這些圖集保存下來。
第一我們需要獲取到所有的列表,我們往下拉動(dòng)滾動(dòng)條,拉到底,會(huì)繼續(xù)自動(dòng)加載內(nèi)容,我們通過瀏覽器的NetWork可以發(fā)現(xiàn)請(qǐng)求的數(shù)據(jù)包
我們來分析一下這個(gè)數(shù)據(jù)包
URL:https://www.toutiao.com/search_content/?offset=0&format=json&keyword=%E6%B8%85%E7%BA%AF%E7%BE%8E%E5%A5%B3&autoload=true&count=20&cur_tab=3&from=gallery
通過url我們可以知道幾個(gè)重要的參數(shù)
offset 偏移量
count 數(shù)量
cur_tab 當(dāng)前分類
這里很多朋友可能對(duì)偏移量不太了解,這里我用sql語句表示一下,如果了解sql的朋友 肯定就知道了
mysql> SELECT * FROM art LIMIT offset , countmysql> SELECT * FROM table LIMIT 5,10; // 檢索記錄行 6-15
mysql> SELECT * FROM table LIMIT 95,1; // 檢索記錄行 96
這里我每次讀取一條,對(duì)一條進(jìn)行**作.
URL:https://www.toutiao.com/search_content/?offset=1&format=json&keyword=%E6%B8%85%E7%BA%AF%E7%BE%8E%E5%A5%B3&autoload=true&count=1&cur_tab=3&from=gallery
每次對(duì)offset 進(jìn)行自增即可了
我們點(diǎn)擊進(jìn)去 看看數(shù)據(jù)的結(jié)構(gòu)。
我們需要獲取到該圖集的鏈接。
進(jìn)入這篇圖集,在NetWork中并沒有發(fā)現(xiàn)圖集有關(guān)的請(qǐng)求接口,可能也是混排的。
我們可以查看頁面的源碼
原來真的是混排的寫法.看了一下這里用到vue.具體怎么實(shí)現(xiàn)的我們不去探討了,我們只需要取出數(shù)據(jù)即可。
那如何取出呢? 提供兩種方法,一種就是正則,一種就是自己寫一個(gè)取文本的函數(shù)。這里我用第二種作為演示,下面是取文本的函數(shù)。
def txt_wrap_by(start_str, end, html): start = html.find(start_str) if start >= 0: start += len(start_str) end = html.find(end, start) if end >= 0:
return html[start:end].strip()
我們?nèi)〕?JSON.parse(“”) 中的數(shù)據(jù)
觀察數(shù)據(jù),可以發(fā)現(xiàn) 我們?nèi)〕?url 就可以了,這里的數(shù)據(jù)是json但是被轉(zhuǎn)義了,我們就通過正則取出吧
正則的語法如圖上,最后我也會(huì)放出所有代碼滴,大家放心。
取到了uri 我們只要在前面拼上 http://p1.toutiaoimg.com/ 即可。
第二保存為圖片即可~
上面說的都是思路,最后放出代碼~
#coding:utf-8import requests,os,json,re,uuid# 主函數(shù)def main(): foreach_art_list()def foreach_art_list(): # 判斷目錄下是否存在jilv.txt文件 如果存在則讀取里面的數(shù)值 if os.path.exists(‘./jilv.txt’): f = open(‘./jilv.txt’) n = f.read() n = int(n) f.close() else: n = 1 while True: url = ‘http://www.toutiao.com/search_content/?offset=’ + str(n) + ‘&format=json&keyword=%E6%B8%85%E7%BA%AF%E7%BE%8E%E5%A5%B3&autoload=true&count=1&cur_tab=3&from=gallery’ re = requests.get(url) data = re.json()[‘data’] if not data: break # 運(yùn)行圖片下載函數(shù) download_pic(data[0][‘article_url’],n) n = n+1 # 將n寫入文件 防止程序運(yùn)行出錯(cuò) 可以繼續(xù)運(yùn)行 with open(‘./jilv.txt’, ‘w’) as f: f.write(str(n))def download_pic(url,n): download_pic_url = ‘http://p1.toutiaoimg.com/’ # 這里必須帶上協(xié)議頭,否則會(huì)請(qǐng)求失敗 header = { ‘user-agent’:’Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.162 Safari/537.36′ } res = requests.get(url,headers = header) content = res.text img_list_json = txt_wrap_by(‘gallery: JSON.parse(“‘,'”),’,content) # 正則獲取所有的uri img_list = re.findall(r’uri\\”:\\”(.*?)\\”‘,img_list_json) #判斷是否有此目錄 if ‘img’ not in os.listdir(‘.’): os.mkdir(‘./img’) if str(n) not in os.listdir(‘./img’): os.mkdir(‘./img/’+str(n)) for v in img_list: img_path = download_pic_url + v img_path = img_path.replace(“\\”, “”) # 讀取圖片 atlas = requests.get(img_path).content # 保存圖片 with open( ‘./img/’ + str(n) + ‘/’ + str(uuid.uuid1()) +’.jpg’, ‘wb’) as f: # 把圖片寫入文件內(nèi) f.write(atlas)# 取出兩個(gè)文本之間的內(nèi)容def txt_wrap_by(start_str, end, html): start = html.find(start_str) if start >= 0: start += len(start_str) end = html.find(end, start) if end >= 0: return html[start:end].strip()# 運(yùn)行程序
main()
最后 展示一下 運(yùn)行結(jié)果:
這個(gè)程序還有許多不完善的地方,我會(huì)在之后教程加入 redis 和 多線程 的寫法,讓它成為最快的爬蟲~
敬請(qǐng)期待~ 今天就到這里了。嘿嘿~ 看我的美圖去了。
拓展知識(shí):
e8瀏覽器下載
瀏覽器在手機(jī)上 能下載 要按照**作 一步一步來 下載需要占用內(nèi)存空間 請(qǐng)根據(jù)自己手機(jī)的情況進(jìn)行下載 瀏覽器在手機(jī)上 能下載 要按照**作 一步一步來 下載需要占用內(nèi)存空間 請(qǐng)根據(jù)自己的手機(jī)的情況進(jìn)行下載
e8瀏覽器下載
L e8瀏覽器手機(jī)是可以下載的,你可以根據(jù)提示一步一步的下載下載,最好去正規(guī)的廉潔下載官方認(rèn)證的下載這個(gè)比較安全,沒有什么風(fēng)險(xiǎn),現(xiàn)在網(wǎng)上有**的軟件太多了,不能隨意點(diǎn)的,要小心謹(jǐn)慎,確認(rèn)后沒有**,安全無誤才可以下載
e8瀏覽器下載
能下載的,看你自己了
原創(chuàng)文章,作者:九賢生活小編,如若轉(zhuǎn)載,請(qǐng)注明出處:http:///91537.html