爬取多页网页内容

430次阅读
没有评论

 转载至:https://www.cnblogs.com/zhangmingfeng/p/12041702.html

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

一、审查元素

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

  爬取多页网页内容

 

  接着屏幕下方就会出现对应的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)

爬取多页网页内容

 

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

神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试

相关文章:

版权声明:Python教程2022-10-25发表,共计1648字。
新手QQ群:570568346,欢迎进群讨论 Python51学习