本文是系列教程終極篇--【實(shí)戰(zhàn)開發(fā)】“爬取某網(wǎng)站小女孩姐超好看圖片(三)”歡迎查看系列教程文章!!
在這里,我們以爬取“不羞澀”網(wǎng)首頁的所有標(biāo)簽下的小女孩姐信息為例進(jìn)行說明講解,網(wǎng)址如下:http://www.buxiuse.com/?cid=3
我們需要爬取的信息內(nèi)容(一)有:不同標(biāo)簽名稱及地址,如下:
我們需要爬取的信息內(nèi)容(二)有:所有頁面網(wǎng)址,如下:
我們需要爬取的信息內(nèi)容(三)有:所有小女孩姐的封面圖片地址、標(biāo)題、收藏量、詳情鏈接地址,如下:
主要需求內(nèi)容就是上述這些,下面一起來分析及學(xué)習(xí)哈!
對(duì)于爬取所有分類標(biāo)簽與鏈接的信息,基本內(nèi)容如下圖所示,我們需要爬取的是所有、好X妹等標(biāo)簽名及鏈接信息,如下:
查看網(wǎng)頁源碼內(nèi)容,如下:
編寫獲取所有分類標(biāo)簽與鏈接的代碼內(nèi)容,參考如下:import requestsimport lxml.htmldef parse_girl_url(temp_url): headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.164 Safari/537.36"} response = requests.get(temp_url,headers=headers) html_ret = response.content.decode("utf-8") return html_retdef catch_girl_title_list(temp_text): metree = lxml.html.etree parser = metree.HTML(temp_text,metree.HTMLParser()) li_list = parser.xpath("https://ul[@class='nav nav-pills']/li") # print("長度:",len(li_list)) temp_gilr_list = [] # 遍歷 for li_element in li_list: item = [] # 標(biāo)簽 title = li_element.xpath("https://zhuanlan.zhihu.com/p/a/@href")[0] item.append(title) # 鏈接地址 title_hrefurl = li_element.xpath("https://zhuanlan.zhihu.com/p/a/text()")[0] item.append(title_hrefurl) temp_gilr_list.append(item) return temp_gilr_listdef main(): # 解析網(wǎng)址 http_url = "http://www.buxiuse.com/?cid=3" girl_html_contnet = parse_girl_url(http_url) # print(girl_html_contnet) # 獲取數(shù)據(jù) girl_title_list = catch_girl_title_list(girl_html_contnet) print("結(jié)果:",girl_title_list)if __name__ == '__main__': main()
運(yùn)行結(jié)果如下:
下面一起來看看所有頁面網(wǎng)址的效果,我們來打開如下頁面查看下:http://www.buxiuse.com/
為了便于獲取頁面數(shù)據(jù),此處暫時(shí)爬取4頁為例說明,網(wǎng)址規(guī)律效果如下:頁面數(shù)網(wǎng)址第1頁http://www.buxiuse.com/第2頁http://www.buxiuse.com/?page=2第3頁http://www.buxiuse.com/?page=3第4頁http://www.buxiuse.com/?page=4
觀察上述規(guī)律,可以分析第1頁的網(wǎng)址應(yīng)該為:http://www.buxiuse.com/?page=1
經(jīng)過分析處理,果然可以打開頁面內(nèi)容!再分析網(wǎng)址內(nèi)容,我們發(fā)現(xiàn)就是跟上述標(biāo)簽鏈接地址添加結(jié)尾內(nèi)容即可拼接成標(biāo)準(zhǔn)的網(wǎng)址,例如:http://www.buxiuse.com/ 拼接 ?page=3
下面我們?cè)僖黄饋砼廊∠马撁婢W(wǎng)址,代碼如下:for element in girl_title_list: # 拼接網(wǎng)址 index_url = element[0] # 4個(gè)頁面 page_url_list = [] for page in range(1,5): page_url = index_url+"?page="+str(page) page_url_list.append(page_url) # 添加到結(jié)尾處 element.append(page_url_list)# 所有網(wǎng)址print("所有頁面網(wǎng)址:",girl_title_list)
運(yùn)行效果:
接著,融入前面文章的(一)、(二)就可以形成完整的一個(gè)項(xiàng)目啦。!
【來關(guān)注“碼了個(gè)蛇”,持續(xù)更新Python、Android技術(shù)分享!年輕小粉絲們有企圖學(xué)習(xí)編程者,私?聯(lián)系!】