python爬蟲(chóng)實(shí)現(xiàn)爬取同一個(gè)網(wǎng)站的多頁(yè)數(shù)據(jù)的實(shí)例講解
對(duì)于一個(gè)網(wǎng)站的圖片、文字音視頻等,如果我們一個(gè)個(gè)的下載,不僅浪費(fèi)時(shí)間,而且很容易出錯(cuò)。Python爬蟲(chóng)幫助我們獲取需要的數(shù)據(jù),這個(gè)數(shù)據(jù)是可以快速批量的獲取。本文小編帶領(lǐng)大家通過(guò)python爬蟲(chóng)獲取獲取總頁(yè)數(shù)并更改url的方法,實(shí)現(xiàn)爬取同一個(gè)網(wǎng)站的多頁(yè)數(shù)據(jù)。
一、爬蟲(chóng)的目的
從網(wǎng)上獲取對(duì)你有需要的數(shù)據(jù)
二、爬蟲(chóng)過(guò)程
1、獲取url(網(wǎng)址)。
2、發(fā)出請(qǐng)求,獲得響應(yīng)。
3、提取數(shù)據(jù)。
4、保存數(shù)據(jù)。
三、爬蟲(chóng)功能
可以快速批量的獲取想要的數(shù)據(jù),不用手動(dòng)的一個(gè)個(gè)下載(圖片、文字音視頻等)
四、使用python爬蟲(chóng)爬取同一網(wǎng)站多頁(yè)數(shù)據(jù)
1、需要定位至該標(biāo)簽并獲得總頁(yè)數(shù)
def get_page_size(soup): pcxt=soup.find('div',{'class':'babynames-term-articles'}).find('nav') pcxt1=pcxt.find('div',{'class':'nav-links'}).findAll('a') for i in pcxt1[:-1]: link=i.get('href') s=str(i) page=re.sub('<a href="','',s) page1=re.sub(link,'',page) page2=re.sub('">','',page1) page3=re.sub('</a>','',page2) pagesize=int(page3) print(pagesize) return pagesize Pass
2、更改url來(lái)訪問(wèn)網(wǎng)址,也就是進(jìn)行主函數(shù)的編寫(xiě)
if __name__ == '__main__': url="http://www.sheknows.com/baby-names/browse/a/" soup=get_requests(url) page=get_page_size(soup) for i in range(1,page+1): url1=url+"page/"+str(i)+"/" soup1=get_requests(url1) draw_base_list(soup1)
實(shí)例擴(kuò)展:
import requests from lxml import etree import re url="https://movie.douban.com/top250" header = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36"} allMovieList=[] flag = True while flag: html = requests.get(url, headers=header).text list = etree.HTML(html) lis = list.xpath('//ol[@class="grid_view"]/li') for oneSelector in lis: name = oneSelector.xpath("div/div[2]/div[1]/a/span[1]/text()")[0] score = oneSelector.xpath("div/div[2]/div[2]/div/span[2]/text()")[0] people = oneSelector.xpath("div/div[2]/div[2]/div/span[4]/text()")[0] people = re.findall("(.*?)人評(píng)價(jià)",people)[0] oneMovieList = [name,score,people] allMovieList.append(oneMovieList) #獲取下一頁(yè)地址 try: next_url = list.xpath('//span[@class="next"]/a/@href')[0] if next_url: url = "https://movie.douban.com/top250"+ next_url except: flag = False print(allMovieList)
到此這篇關(guān)于python爬蟲(chóng)實(shí)現(xiàn)爬取同一個(gè)網(wǎng)站的多頁(yè)數(shù)據(jù)的實(shí)例講解的文章就介紹到這了,更多相關(guān)python爬蟲(chóng)如何實(shí)現(xiàn)爬取同一個(gè)網(wǎng)站的多頁(yè)數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python繪圖Turtle庫(kù)的安裝問(wèn)題解決
這篇文章主要介紹了Python繪圖中解決Turtle的安裝問(wèn)題示例分析,也遇到過(guò)相同問(wèn)題的同學(xué)可以借鑒參考下,希望能夠解決你的問(wèn)題2021-10-10實(shí)例講解Python中SocketServer模塊處理網(wǎng)絡(luò)請(qǐng)求的用法
SocketServer模塊中帶有很多實(shí)現(xiàn)服務(wù)器所能夠用到的socket類和操作方法,下面我們就來(lái)以實(shí)例講解Python中SocketServer模塊處理網(wǎng)絡(luò)請(qǐng)求的用法:2016-06-06python使用sorted函數(shù)對(duì)列表進(jìn)行排序的方法
這篇文章主要介紹了python使用sorted函數(shù)對(duì)列表進(jìn)行排序的方法,涉及Python使用sorted函數(shù)的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04OpenCV連通域數(shù)量統(tǒng)計(jì)學(xué)習(xí)示例
這篇文章主要為大家介紹了OpenCV連通域數(shù)量統(tǒng)計(jì)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06django admin 自定義替換change頁(yè)面模板的方法
今天小編就為大家分享一篇django admin 自定義替換change頁(yè)面模板的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08pytorch關(guān)于Tensor的數(shù)據(jù)類型說(shuō)明
這篇文章主要介紹了pytorch關(guān)于Tensor的數(shù)據(jù)類型說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07python實(shí)現(xiàn)堆棧與隊(duì)列的方法
這篇文章主要介紹了python實(shí)現(xiàn)堆棧與隊(duì)列的方法,包含了堆棧與隊(duì)列的定義方法及常用操作,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-01-01