首页 > 编程语言 > 详细

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

时间:2019-12-15 09:50:06      阅读:90      评论:0      收藏:0      [点我收藏+]

  通过上一篇博客了解到爬取数据的操作,但对于存在多个页面的网址来说,使用上一篇博客中的代码爬取下来的资料并不完整。接下来就是讲解该如何爬取之后的页面信息。

一、审查元素

  鼠标移至页码处右键,选择检查元素

  技术分享图片

 

  接着屏幕下方就会出现对应的html语句

  技术分享图片

 

 

 

 二、分析html语句与项目要求

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

  方法一:循环访问本页面中的“下一页”链接直至该标签为空

  技术分享图片

 

 

   即

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语句给出了总页码,我们只需要定位至该标签并获得总页数即可。

  即

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)

 

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

技术分享图片

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

原文:https://www.cnblogs.com/zhangmingfeng/p/12041702.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!