Python爬取网址中多个页面的信息

本文讲解该如何爬取之后的页面信息,希望对你有帮助

一、审查元素

鼠标移至页码处右键,选择检查元素
在这里插入图片描述
接着屏幕下方就会出现对应的html语句
在这里插入图片描述
二、分析html语句与项目要求

本次项目是爬取所有信息,根据第一步中的html语句,我们有两种爬取后续页面信息的方法:

方法一:循环访问本页面中的“下一页”链接直至该标签为空
在这里插入图片描述

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def next_page(url):
    soup=get_requests(url)
    draw_base_list(soup)
    pcxt=soup.find('div',{'class':'babynames-term-articles'}).find('nav')
    pcxt1=pcxt.find('div',{'class':'nav-links'}).find('a',{'class':'next page-numbers'})
    if pcxt1!=None:
        link=pcxt1.get('href')
        next_page(link)
    else:
        print("爬取完成")

方法二:获取总页数,通过更改url来爬取后续信息

通过html语句可以看出不同页数的url只有最后的数字不一样,而最后的数字就代表着这个url中的信息是第几页的信息。

页面中的html语句给出了总页码,我们只需要定位至该标签并获得总页数即可。

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
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 class="page-numbers" href="','',s)
    page1=re.sub(link,'',page)
    page2=re.sub('">','',page1)
    page3=re.sub('</a>','',page2)
    pagesize=int(page3)
    print(pagesize)
    return pagesize
    pass

获得总页数后这个模块还没有结束,我们还需要更改url来访问网址,也就是主函数的编写:

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)

通过以上的两种方法就可以将多个页面中的信息都爬取下来了,赶紧动手试试吧。

  • 4
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值