摘要:前言利用爬取的是今日頭條中的街拍美圖。詳細(xì)瀏覽器信息獲取文章鏈接相關(guān)代碼街拍獲取失敗這里需要提一下模塊的報(bào)錯(cuò)在對(duì)象上調(diào)用方法如果下載文件出錯(cuò)會(huì)拋出異常需要使用和語(yǔ)句將代碼行包裹起來(lái)處理這一錯(cuò)誤不讓程序崩潰。
利用Python爬取的是今日頭條中的街拍美圖。廢話(huà)不多說(shuō)。
讓我們愉快地開(kāi)始吧~
Python版本: 3.6.4
相關(guān)模塊:
requests模塊;
re模塊;
以及一些Python自帶的模塊。
安裝Python并添加到環(huán)境變量,pip安裝需要的相關(guān)模塊即可。
獲取文章鏈接相關(guān)代碼:
import requestsimport jsonimport reheaders = { 'user-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'}def get_first_data(offset): params = { 'offset': offset, 'format': 'json', 'keyword': '街拍', 'autoload': 'true', 'count': '20', 'cur_tab': '1', 'from':'search_tab' } response = requests.get(url='https://www.toutiao.com/search_content/', headers=headers, params=params) try: response.raise_for_status() return response.text except Exception as exc: print("獲取失敗") return Nonedef handle_first_data(html): data = json.loads(html) if data and "data" in data.keys(): for item in data.get("data"): yield item.get("article_url")
這里需要提一下requests模塊的報(bào)錯(cuò),在response對(duì)象上調(diào)用 raise_for_status()方法,如果下載文件出錯(cuò),會(huì)拋出異常,需要使用 try 和 except 語(yǔ)句將代碼行包裹起來(lái),處理這一錯(cuò)誤,不讓程序崩潰。
另外附上requests模塊技術(shù)文檔網(wǎng)址:http://cn.python-requests.org/zh_CN/latest/
獲取圖片鏈接相關(guān)代碼:
def get_second_data(url): if url: try: reponse = requests.get(url, headers=headers) reponse.raise_for_status() return reponse.text except Exception as exc: print("進(jìn)入鏈接發(fā)生錯(cuò)誤") return Nonedef handle_second_data(html): if html: pattern = re.compile(r'gallery: JSON.parse/((.*?)/),', re.S) result = re.search(pattern, html) if result: imageurl = [] data = json.loads(json.loads(result.group(1))) if data and "sub_images" in data.keys(): sub_images = data.get("sub_images") images = [item.get('url') for item in sub_images] for image in images: imageurl.append(images) return imageurl else: print("have no result")
獲取圖片相關(guān)代碼:
def download_image(imageUrl): for url in imageUrl: try: image = requests.get(url).content except: pass with open("images"+str(url[-10:])+".jpg", "wb") as ob: ob.write(image) ob.close() print(url[-10:] + "下載成功!" + url)def main(): html = get_first_data(0) for url in handle_first_data(html): html = get_second_data(url) if html: result = handle_second_data(html) if result: try: download_image(result) except KeyError: print("{0}存在問(wèn)題,略過(guò)".format(result)) continueif __name__ == '__main__': main()
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/125564.html
摘要:上一篇文章網(wǎng)絡(luò)爬蟲(chóng)實(shí)戰(zhàn)數(shù)據(jù)爬取下一篇文章網(wǎng)絡(luò)爬蟲(chóng)實(shí)戰(zhàn)動(dòng)態(tài)渲染頁(yè)面抓取本節(jié)我們以今日頭條為例來(lái)嘗試通過(guò)分析請(qǐng)求來(lái)抓取網(wǎng)頁(yè)數(shù)據(jù)的方法,我們這次要抓取的目標(biāo)是今日頭條的街拍美圖,抓取完成之后將每組圖片分文件夾下載到本地保存下來(lái)。 上一篇文章:Python3網(wǎng)絡(luò)爬蟲(chóng)實(shí)戰(zhàn)---35、 Ajax數(shù)據(jù)爬取下一篇文章:Python3網(wǎng)絡(luò)爬蟲(chóng)實(shí)戰(zhàn)---37、動(dòng)態(tài)渲染頁(yè)面抓取:Selenium 本節(jié)我們...
摘要:所以說(shuō),我們所看到的微博頁(yè)面的真實(shí)數(shù)據(jù)并不是最原始的頁(yè)面返回的,而是后來(lái)執(zhí)行后再次向后臺(tái)發(fā)送了請(qǐng)求,拿到數(shù)據(jù)后再進(jìn)一步渲染出來(lái)的。結(jié)果提取仍然是拿微博為例,我們接下來(lái)用來(lái)模擬這些請(qǐng)求,把馬云發(fā)過(guò)的微博爬取下來(lái)。 上一篇文章:Python3網(wǎng)絡(luò)爬蟲(chóng)實(shí)戰(zhàn)---34、數(shù)據(jù)存儲(chǔ):非關(guān)系型數(shù)據(jù)庫(kù)存儲(chǔ):Redis下一篇文章:Python3網(wǎng)絡(luò)爬蟲(chóng)實(shí)戰(zhàn)---36、分析Ajax爬取今日頭條街拍美圖 ...
摘要:不過(guò)動(dòng)態(tài)渲染的頁(yè)面不止這一種。再有淘寶這種頁(yè)面,它即使是獲取的數(shù)據(jù),但是其接口含有很多加密參數(shù),我們難以直接找出其規(guī)律,也很難直接分析來(lái)抓取。我們用一個(gè)實(shí)例來(lái)感受一下在這里們依然是先打開(kāi)知乎頁(yè)面,然后獲取提問(wèn)按鈕這個(gè)節(jié)點(diǎn),再將其 上一篇文章:Python3網(wǎng)絡(luò)爬蟲(chóng)實(shí)戰(zhàn)---36、分析Ajax爬取今日頭條街拍美圖下一篇文章:Python3網(wǎng)絡(luò)爬蟲(chóng)實(shí)戰(zhàn)---38、動(dòng)態(tài)渲染頁(yè)面抓取:Spla...
摘要:今天給大家分享的是爬蟲(chóng),寫(xiě)得不好的大家多關(guān)照,指出背景交代,以下寫(xiě)的都是參照網(wǎng)絡(luò)爬蟲(chóng)開(kāi)發(fā)實(shí)戰(zhàn)用實(shí)現(xiàn)的,所以的具體思路什么的,大家可以去看書(shū)上的介紹,感興趣的,可以去了解一波。 今天給大家分享的是node爬蟲(chóng),寫(xiě)得不好的大家多關(guān)照,指出 背景交代,以下寫(xiě)的demo都是參照《python3網(wǎng)絡(luò)爬蟲(chóng)開(kāi)發(fā)實(shí)戰(zhàn)》用node實(shí)現(xiàn)的,所以demo的具體思路什么的,大家可以去看書(shū)上的介紹,感興趣的,可...
摘要:前言利用實(shí)現(xiàn)抓取微博評(píng)論數(shù)據(jù),廢話(huà)不多說(shuō)。讓我們愉快地開(kāi)始吧開(kāi)發(fā)工具版本相關(guān)模塊模塊模塊模塊模塊模塊以及一些自帶的模塊。環(huán)境搭建安裝并添加到環(huán)境變量,安裝需要的相關(guān)模塊即可。 ...
閱讀 844·2023-04-25 19:43
閱讀 4109·2021-11-30 14:52
閱讀 3919·2021-11-30 14:52
閱讀 4024·2021-11-29 11:00
閱讀 3917·2021-11-29 11:00
閱讀 4035·2021-11-29 11:00
閱讀 3752·2021-11-29 11:00
閱讀 6597·2021-11-29 11:00