成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

python爬蟲實戰(zhàn),requests模塊,Python實現(xiàn)抓取頭條街拍美圖

番茄西紅柿 / 3320人閱讀

摘要:前言利用爬取的是今日頭條中的街拍美圖。詳細瀏覽器信息獲取文章鏈接相關代碼街拍獲取失敗這里需要提一下模塊的報錯在對象上調(diào)用方法如果下載文件出錯會拋出異常需要使用和語句將代碼行包裹起來處理這一錯誤不讓程序崩潰。

前言

利用Python爬取的是今日頭條中的街拍美圖。廢話不多說。

讓我們愉快地開始吧~

開發(fā)工具

Python版本: 3.6.4

相關模塊:

requests模塊;

re模塊;

以及一些Python自帶的模塊。

環(huán)境搭建

安裝Python并添加到環(huán)境變量,pip安裝需要的相關模塊即可。

詳細瀏覽器信息

獲取文章鏈接相關代碼:

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模塊的報錯,在response對象上調(diào)用 raise_for_status()方法,如果下載文件出錯,會拋出異常,需要使用 try 和 except 語句將代碼行包裹起來,處理這一錯誤,不讓程序崩潰。

另外附上requests模塊技術(shù)文檔網(wǎng)址:http://cn.python-requests.org/zh_CN/latest/

獲取圖片鏈接相關代碼:

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("進入鏈接發(fā)生錯誤")            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")

獲取圖片相關代碼:

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}存在問題,略過".format(result))                    continueif __name__ == '__main__':    main()

最后下載成功

查看詳情

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/125564.html

相關文章

  • Python3網(wǎng)絡爬蟲實戰(zhàn)---36、分析Ajax爬取今日頭條街拍美圖

    摘要:上一篇文章網(wǎng)絡爬蟲實戰(zhàn)數(shù)據(jù)爬取下一篇文章網(wǎng)絡爬蟲實戰(zhàn)動態(tài)渲染頁面抓取本節(jié)我們以今日頭條為例來嘗試通過分析請求來抓取網(wǎng)頁數(shù)據(jù)的方法,我們這次要抓取的目標是今日頭條的街拍美圖,抓取完成之后將每組圖片分文件夾下載到本地保存下來。 上一篇文章:Python3網(wǎng)絡爬蟲實戰(zhàn)---35、 Ajax數(shù)據(jù)爬取下一篇文章:Python3網(wǎng)絡爬蟲實戰(zhàn)---37、動態(tài)渲染頁面抓取:Selenium 本節(jié)我們...

    Leck1e 評論0 收藏0
  • Python3網(wǎng)絡爬蟲實戰(zhàn)---35、 Ajax數(shù)據(jù)爬取

    摘要:所以說,我們所看到的微博頁面的真實數(shù)據(jù)并不是最原始的頁面返回的,而是后來執(zhí)行后再次向后臺發(fā)送了請求,拿到數(shù)據(jù)后再進一步渲染出來的。結(jié)果提取仍然是拿微博為例,我們接下來用來模擬這些請求,把馬云發(fā)過的微博爬取下來。 上一篇文章:Python3網(wǎng)絡爬蟲實戰(zhàn)---34、數(shù)據(jù)存儲:非關系型數(shù)據(jù)庫存儲:Redis下一篇文章:Python3網(wǎng)絡爬蟲實戰(zhàn)---36、分析Ajax爬取今日頭條街拍美圖 ...

    Thanatos 評論0 收藏0
  • Python3網(wǎng)絡爬蟲實戰(zhàn)---37、動態(tài)渲染頁面抓取:Selenium

    摘要:不過動態(tài)渲染的頁面不止這一種。再有淘寶這種頁面,它即使是獲取的數(shù)據(jù),但是其接口含有很多加密參數(shù),我們難以直接找出其規(guī)律,也很難直接分析來抓取。我們用一個實例來感受一下在這里們依然是先打開知乎頁面,然后獲取提問按鈕這個節(jié)點,再將其 上一篇文章:Python3網(wǎng)絡爬蟲實戰(zhàn)---36、分析Ajax爬取今日頭條街拍美圖下一篇文章:Python3網(wǎng)絡爬蟲實戰(zhàn)---38、動態(tài)渲染頁面抓取:Spla...

    zhjx922 評論0 收藏0
  • node網(wǎng)絡爬蟲實例了解下?

    摘要:今天給大家分享的是爬蟲,寫得不好的大家多關照,指出背景交代,以下寫的都是參照網(wǎng)絡爬蟲開發(fā)實戰(zhàn)用實現(xiàn)的,所以的具體思路什么的,大家可以去看書上的介紹,感興趣的,可以去了解一波。 今天給大家分享的是node爬蟲,寫得不好的大家多關照,指出 背景交代,以下寫的demo都是參照《python3網(wǎng)絡爬蟲開發(fā)實戰(zhàn)》用node實現(xiàn)的,所以demo的具體思路什么的,大家可以去看書上的介紹,感興趣的,可...

    陸斌 評論0 收藏0
  • Python爬蟲實戰(zhàn),requests模塊,Python實現(xiàn)抓取微博評論

    摘要:前言利用實現(xiàn)抓取微博評論數(shù)據(jù),廢話不多說。讓我們愉快地開始吧開發(fā)工具版本相關模塊模塊模塊模塊模塊模塊以及一些自帶的模塊。環(huán)境搭建安裝并添加到環(huán)境變量,安裝需要的相關模塊即可。 ...

    jaysun 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<