亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

【爬蟲二】爬取豆瓣音樂榜單

2019-11-14 11:03:25
字體:
來源:轉載
供稿:網友


前言

  借助有效率的工具,可以讓我們更加方便的寫出爬蟲程序。本篇使用request和bs4庫爬取豆瓣音樂榜單。

介紹

豆瓣音樂榜單:https://music.douban.com/top250 圖片描述 bs4:Beautiful Soup 4 是一個可以從HTML或xml文件中提取數據的Python庫。它能夠通過你喜歡的轉換器實現慣用的文檔導航、查找、修改文檔的方式。Beautiful Soup會幫你節省數小時甚至數天的工作時間。

一、獲取網頁html

def download_page(url): headers = { 'User-Agent':'查看自己的User-Agent,粘貼到此處' } data = requests.get(url, headers=headers).content return data

  不添加headers可能導致403,無法獲取網頁源碼,這是因為操作被服務器認為是爬蟲而拒絕訪問。服務器通過校驗請求的U-A來識別爬蟲,這是一種相對簡單的反爬蟲機制。通過模擬瀏覽器的U-A,可以解決這個問題。

  通常,瀏覽器在向服務器發送請求的時候,會有一個請求頭——User-Agent,它用來標識瀏覽器的類型。當我們使用requests來發送請求的時候,默認的User-Agent是python-requests/2.8.1。如此我們嘗試將User-Agent偽裝成瀏覽器。我們通過手動指定User-Agent為Chrome瀏覽器(F12–>Network中查看),再次訪問得到網頁源碼。

二、獲取當前頁歌名

def parse_html(html): global count soup = BeautifulSoup(html, "html.parser") music_list_soup = soup.find('div', attrs={'class': 'indent'}) music_name_list = [] for music_li in music_list_soup.find_all('table'): detail = music_li.find('div', attrs={'class': 'pl2'}) count += 1 music_name = 'Top ' + str(count) music_name = music_name + detail.find('a').getText() + '/n' music_name_list.append(music_name) next_page = soup.find('span', attrs={'class': 'next'}).find('a') if next_page: return music_name_list, next_page['href'] else: return music_name_list, None

  我們使用了beautifulsoup來分析網頁源碼, 創建bs對象soup,并使用解析器html.parser來解析源碼。    按F12–>Element查看網頁源碼,發現<div class='indent'>標簽下存在歌單(table標簽); 圖片描述 用for循環獲取所有table,并對每一個table進行分析;

<div, class='pl2'>標簽下的<a>標簽下發現歌名, 圖片描述

用此detail.find('a').getText() 函數獲取a標簽下的文字內容,并添加到列表中music_name_list.append(music_name) ,再把列表的元素寫進文件就可以了。

注: BeautifulSoup中的find和findAll用法相同,不同之處為find返回的是findAll搜索值的第一個值。

三、翻頁

  next_page是為了讓程序能夠翻頁,next_page['href'] ,獲取下一頁url,通過while循環來反復訪問,進而可以獲取完整歌單。 圖片描述

四、代碼

  最后,完整程序代碼如下:

#!/usr/bin/env python# encoding=utf-8import requestsfrom bs4 import BeautifulSoupimport codecsdef download_page(url): headers = { 'User-Agent':'查看自己的User-Agent,粘貼到此處' } data = requests.get(url, headers=headers).content return datadef parse_html(html): global count soup = BeautifulSoup(html, "html.parser") music_list_soup = soup.find('div', attrs={'class': 'indent'}) music_name_list = [] for music_li in music_list_soup.find_all('table'): detail = music_li.find('div', attrs={'class': 'pl2'}) count += 1 music_name = 'Top ' + str(count) music_name = music_name + detail.find('a').getText() + '/n' music_name_list.append(music_name) next_page = soup.find('span', attrs={'class': 'next'}).find('a') if next_page: return music_name_list, next_page['href'] else: return music_name_list, Nonedef main(): url = 'https://music.douban.com/top250' fp = codecs.open('music', 'w', encoding='utf-8') while url: html = download_page(url) musics, url = parse_html(html) fp.write(''.join(musics))

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美一区二区三区……| 色综合视频一区中文字幕| 这里只有视频精品| 日本一本a高清免费不卡| 欧美制服第一页| 精品自拍视频在线观看| 欧美在线视频一区二区| 欧美成人中文字幕| 日韩亚洲精品电影| 亚洲风情亚aⅴ在线发布| 国产精品一香蕉国产线看观看| 国产成人精品视频在线观看| 萌白酱国产一区二区| 中文字幕欧美日韩在线| 91久久精品美女| 亚洲成色999久久网站| 日韩精品久久久久久福利| 91精品久久久久久久久久久久久| 少妇激情综合网| 国产成人aa精品一区在线播放| 91欧美精品成人综合在线观看| 国产裸体写真av一区二区| 精品国产乱码久久久久久天美| 97国产精品人人爽人人做| 久久99久国产精品黄毛片入口| 一区二区三区黄色| 国产精品久久久久影院日本| 午夜精品蜜臀一区二区三区免费| 久久久久久网址| 岛国av一区二区在线在线观看| 成人亚洲综合色就1024| 国产精品国产自产拍高清av水多| 日韩av一区在线观看| 欧美国产在线电影| 国产一区二区三区欧美| 久久久国产成人精品| 亚洲精品videossex少妇| 国产精品美女久久| 亚洲福利视频免费观看| 91久久综合亚洲鲁鲁五月天| 国产精品爽爽爽爽爽爽在线观看| 麻豆乱码国产一区二区三区| 亚洲美女又黄又爽在线观看| 精品欧美一区二区三区| 韩国日本不卡在线| 最新国产成人av网站网址麻豆| 欧美性xxxx极品高清hd直播| 久久综合国产精品台湾中文娱乐网| 国产成人精品最新| 亚洲欧美成人在线| xxx一区二区| 欧美日韩免费观看中文| 91国产精品电影| 欧美亚洲另类激情另类| 欧美日韩美女在线观看| 色777狠狠综合秋免鲁丝| 亚洲欧美日韩另类| 欧美日韩国产精品一区二区不卡中文| 91精品国产九九九久久久亚洲| 日韩av电影手机在线| 一本色道久久综合狠狠躁篇的优点| 欧美亚洲在线视频| 在线电影中文日韩| 日韩av电影院| 亚洲在线视频观看| 亚洲丝袜一区在线| 国产精品夫妻激情| 日韩国产精品一区| 亚洲第五色综合网| 久久精品亚洲精品| 色天天综合狠狠色| 欧美一区亚洲一区| 亚洲人成毛片在线播放| 亚洲高清久久久久久| 国产欧美日韩丝袜精品一区| 国产精品普通话| 亚洲国产成人久久| 97超碰国产精品女人人人爽| 九九九久久久久久| 欧美成人精品一区| 国产午夜精品全部视频播放| 欧美丰满少妇xxxxx做受| 国产视频精品免费播放| 日韩欧美在线视频日韩欧美在线视频| 国产精品成人久久久久| 91久久久久久久久久久久久| 亚洲成人亚洲激情| 亚洲男人天堂九九视频| 九九热最新视频//这里只有精品| 国内久久久精品| 亚洲国产天堂网精品网站| 日韩电影免费观看在线| 亚洲乱码国产乱码精品精天堂| 欧美日韩在线视频一区| 亚洲一区二区久久| 亚洲影院色在线观看免费| 97国产在线视频| 亚洲视频专区在线| 九九九热精品免费视频观看网站| 91高潮在线观看| 国产精品午夜一区二区欲梦| 日韩国产欧美精品一区二区三区| 人妖精品videosex性欧美| 久久午夜a级毛片| 中文字幕日韩视频| 欧美小视频在线| www.国产精品一二区| 欧美日韩久久久久| 成人日韩在线电影| 亚洲香蕉成人av网站在线观看| 国产97免费视| 亚洲人成电影网站色xx| 亚洲欧美日韩中文视频| 性色av香蕉一区二区| 亚洲xxxx做受欧美| 亚洲网站视频福利| 欧美日韩亚洲成人| 色樱桃影院亚洲精品影院| 在线视频日韩精品| 国产精彩精品视频| 亚洲精品久久久久久久久久久久久| 成人欧美一区二区三区黑人| 91精品国产综合久久香蕉922| 亚洲国产精品成人精品| 中文字幕日韩精品在线观看| 亚洲天堂久久av| 欧美激情视频在线观看| 最近中文字幕mv在线一区二区三区四区| 97在线视频免费播放| 欧美激情一级精品国产| 亚洲成人网久久久| 国产日韩精品综合网站| 91精品国产高清自在线看超| 91精品国产91久久久久久不卡| 国产精品99蜜臀久久不卡二区| 久久99精品国产99久久6尤物| 91影院在线免费观看视频| 日韩av在线影院| 亚洲第一福利在线观看| 青青草原成人在线视频| 91精品国产91久久| 欧美激情综合亚洲一二区| 美女视频黄免费的亚洲男人天堂| 日韩风俗一区 二区| 国产日韩精品电影| 国产精品久久二区| 国产精品久久久久久久午夜| 亚洲精品v天堂中文字幕| 亚洲精品91美女久久久久久久| 欧美激情伊人电影| 国产精品视频精品视频| 日韩av在线免费播放| 91精品在线国产| 亚洲xxxx3d| 韩国一区二区电影| 成人亚洲欧美一区二区三区| 日韩激情视频在线| 国内精品久久久久久影视8| 91欧美精品午夜性色福利在线| 亚洲电影在线观看| 亚洲一区中文字幕在线观看| 日韩在线观看你懂的| 欧洲亚洲免费视频| 国产亚洲xxx|