python爬虫实现爬取同一个网站的多页数据的实例讲解
作者:宋宋大人 发布时间:2021-04-11 13:52:09
标签:python爬虫,多页数据
对于一个网站的图片、文字音视频等,如果我们一个个的下载,不仅浪费时间,而且很容易出错。Python爬虫帮助我们获取需要的数据,这个数据是可以快速批量的获取。本文小编带领大家通过python爬虫获取获取总页数并更改url的方法,实现爬取同一个网站的多页数据。
一、爬虫的目的
从网上获取对你有需要的数据
二、爬虫过程
1、获取url(网址)。
2、发出请求,获得响应。
3、提取数据。
4、保存数据。
三、爬虫功能
可以快速批量的获取想要的数据,不用手动的一个个下载(图片、文字音视频等)
四、使用python爬虫爬取同一网站多页数据
1、需要定位至该标签并获得总页数
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来访问网址,也就是进行主函数的编写
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)
实例扩展:
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("(.*?)人评价",people)[0]
oneMovieList = [name,score,people]
allMovieList.append(oneMovieList)
#获取下一页地址
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)
来源:https://www.py.cn/toutiao/23021.html


猜你喜欢
- 查看数据库show databases;创建数据库create DATABASE 数据库名称create DATABASE database
- 前言最近写的项目中用到了JWT鉴权,因此做个记录原先的jwt-go仓库已经不再维护,迁移到了github.com/golang-jwt/jw
- 前言异步编程可以提高应用程序的性能和吞吐量,因为它可以充分利用 CPU 和 I/O 资源。当某个任务被阻塞时,事件循环可以切换到另一个任务,
- MySQL root密码正确,却怎么也无法从本地登录MySQL,提示ERROR 1045 (28000): Access denied fo
- 本文实例讲述了Python进程间通信Queue消息队列用法。分享给大家供大家参考,具体如下:进程间通信-QueueProcess之间有时需要
- 前言最近已经播完第一季的电视剧《雪中悍刀行》,从播放量就可以看出观众对于这部剧的期待,总播放量达到50亿,可让人遗憾的是,豆瓣评分只有5.7
- 本文实例讲述了Python flask框架post接口调用。分享给大家供大家参考,具体如下:from flask import Flask,
- 1.业务需求背景业务提供一张底层图片1以及需要在底层图片上添加的图片2,两张图片大小不一致,将小图2添加到底图1中,并在其他的空白部分添加个
- 很多开发人员在使用MySQL时经常会在部分列上进行函数计算等,导致无法走索引,在数据量大的时候,查询效率低下。针对此种情况本文从MySQL5
- 1.Vuex是什么?学院派:Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式;集中存储和管理应用的所有组件状态。理解:以上这4
- 一.python实现ping返回延迟繁琐版#!/usr/bin/python3.7# !coding:utf-8__author__ = &
- 一、urllib 和 urllib2的关系在python2中,主要使用urllib和urllib2,而python3对urllib和urll
- pandas.read_sql 可以在数据库中执行指定的SQL语句查询或对指定的整张表进行查询,以DataFrame 的类型返回查询结果,这
- 1. 为什么不使用GridView的默认分页功能 首先要说说为什么不用GridView的默认的分页功能,GridView控件并非真正知道如何
- MySQL数据库配置技巧用root用户启动远程服务一直是安全大忌,因为如果服务程序出现问题,远程攻击者极有可能获得主机的完全控制权。MySQ
- 前言:说到JavaScript中的继承,与之密切相关的就是原型链了,JavaScript中的继承主要是通过原型链实现的。但是简单的原型链继承
- 我们都知道ACCESS是ASP的亲密伙伴。因为两种最简单的东西碰在一起总能迸发出火花。然而,当我们过滤不严格的时候经常出现日文字符,这个时候
- 在命令行中运行python代码是很常见的,下面介绍如何定义命令后面跟的参数。1 常规用法Python代码中主要使用下面
- 这段程序的方法是利用XMLHTTP来读取腾讯网站的相应HTML代码获取QQ的头像,根据这个想法,我们还
- Python是什么Python(大蟒蛇)是一门解释型、面向对象、带有动态语义的高级程序设计语言。Python 是一门有条理的和强大的面向对象