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)訪(fǎng)問(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)和操作方法,下面我們就來(lái)以實(shí)例講解Python中SocketServer模塊處理網(wǎng)絡(luò)請(qǐng)求的用法:2016-06-06
python使用sorted函數(shù)對(duì)列表進(jìn)行排序的方法
這篇文章主要介紹了python使用sorted函數(shù)對(duì)列表進(jìn)行排序的方法,涉及Python使用sorted函數(shù)的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04
OpenCV連通域數(shù)量統(tǒng)計(jì)學(xué)習(xí)示例
這篇文章主要為大家介紹了OpenCV連通域數(shù)量統(tǒng)計(jì)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06
django admin 自定義替換change頁(yè)面模板的方法
今天小編就為大家分享一篇django admin 自定義替換change頁(yè)面模板的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08
pytorch關(guān)于Tensor的數(shù)據(jù)類(lèi)型說(shuō)明
這篇文章主要介紹了pytorch關(guān)于Tensor的數(shù)據(jù)類(lèi)型說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07
python實(shí)現(xiàn)堆棧與隊(duì)列的方法
這篇文章主要介紹了python實(shí)現(xiàn)堆棧與隊(duì)列的方法,包含了堆棧與隊(duì)列的定義方法及常用操作,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-01-01

