python爬虫7:分页爬取网页内容(需修改)

import os
import re
#创建一个文件夹
if not os.path.exists('./fenyeTupian'):
    os.mkdir('./fenyeTupian')
#请求网页(分页爬取,通用的url模板)
url = "https://tieba.baidu.com/f?kw=赵丽颖pn=%d"
headers = {
    'User-Agent':"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"
}
# pnNum = 0  #起始页
for pnNum in range(0,11):
    #对应页码的url
    new_url = format(url%pnNum)

    #使用通用爬虫对整张页面进行爬取
    page_text = requests.get(url=new_url,headers=headers).text   #获取源码数据,字符形式
   

     #使用聚焦爬虫将所有页面的的图片进行提取
    ex = r'<img.*?src="(.*?)".*?>'
    img_src_list = re.findall(ex,page_text,re.S)  #re.S单行匹配 正则用于数据解析,一定是re.S。findall返回列表
    # print(img_src_list)
    for src in img_src_list:
        src = "https:" + src  #一张图片完整的图片地址URL
        img_data = requests.get(url=src,headers=headers).content   #请求到图片形式的二进制数据
        #生成图片名称
        img_name =src.split('/')[-1]
        print(img_name)
        #图片存储的路径
        imgPath = "./fenyeTupian" + img_name
        with open(imgPath,"wb") as fp:
            fp.write(img_data)
            print(img_name,"下载成功!")

1,分页爬取数据:改变url中的相关页码参数format形成通用url模板

#通用url
url = "https://tieba.baidu.com/f?kw=赵丽颖&pn=%d"

for pnNum in range(0,3):
    new_url = format(url%pnNum)
    #重新对每个页面进行请求和提取数据
    page_text = requests.get(url=new_url,headers=headers)
    #聚焦爬取页面指定的all图片数据
    ex = r'<img.*?src="(.*?).*?">'
    img_lists = re.findall(ex,page_text,re.S)  #列表数据,取出列表元素进行处理

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要爬取多页的网页数据,可以采取以下步骤: 1. 首先,我们要了解网页的请求参数,特别是与分页相关的参数。根据引用,可以看到示例中的请求参数包括页面编号(pageNumber)、每页数据数量(pageSize)、关键字(keyword)和模式(mode)。在爬取多页数据时,我们修改请求参数中的页面编号,来获取不同页的数据。 2. 其次,要注意到网页的动态加载机制。根据引用的描述,网页数据是通过JS动态加载的,而不是直接在源代码中呈现的。因此,我们要使用Python的网络请求库(例如Requests)获取网页源代码,并使用解析库(例如BeautifulSoup)解析源代码,以便提取所的数据。 3. 首先,我们可以使用Requests库发送HTTP请求,获取网页源代码。在示例中,可以看到使用了一个名为response的量来存储响应的内容。然后,我们可以使用BeautifulSoup库对源代码进行解析,以便提取数据。根据引用,可以看到使用BeautifulSoup对response.content进行解析。 4. 接下来,我们可以编写一个循环,通过修改请求参数中的页面编号来获取不同页的数据。例如,可以使用一个for循环迭代所有要爬取的页面编号。在每次循环中,我们可以修改请求参数中的pageNumber,然后发送请求并解析源代码,以提取所的数据。 5. 最后,我们可以将每页的数据存储在合适的数据结构中,例如列表或字典。在循环结束后,我们可以对获取的数据进行进一步处理或保存。 综上所述,要爬取多页的网页数据,要了解请求参数,并通过修改请求参数中的页面编号来获取不同页的数据。同时,要注意网页的动态加载机制,使用合适的网络请求库和解析库来获取和解析网页源代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值