Python bs4:如何重复“;用于”;如果满足特定条件,是否使用不同的刮削页面循环?

Python bs4:如何重复“;用于”;如果满足特定条件,是否使用不同的刮削页面循环?,python,web-scraping,beautifulsoup,Python,Web Scraping,Beautifulsoup,我正在尝试为创建一个循环,一旦它到达刮取页面中的最后一个搜索结果属性,它将使用新刮取的网页的数据重复该循环 在for循环到达最后一个属性后,它将在网页上查找链接,并将使用新的刮取网页重复该循环 我已经编写了下面的代码,但是循环不会在从原始网页的链接中获得的新刮取页面上重复 导入请求 从bs4导入BeautifulSoup page=requests.get(URL,headers=headers) 汤=美汤(第“lxml”页) 对于soup.find_all中的搜索结果(attrs={“搜索结果

我正在尝试为创建一个
循环,一旦它到达刮取页面中的最后一个
搜索结果
属性,它将使用新刮取的网页的数据重复该循环

for
循环到达最后一个属性后,它将在网页上查找链接,并将使用新的刮取网页重复该循环

我已经编写了下面的代码,但是循环不会在从原始网页的链接中获得的新刮取页面上重复

导入请求
从bs4导入BeautifulSoup
page=requests.get(URL,headers=headers)
汤=美汤(第“lxml”页)
对于soup.find_all中的搜索结果(attrs={“搜索结果索引”:True}):
打印(搜索结果.名称.文本)
#如果是最后一个搜索结果,则获取指向新网页的链接,并对新网页重复循环。
如果search_result==soup.find_all(attrs={“search result index”:True})[-1]:
page=requests.get(soup.select_one('li.a-last[href]')['href'],headers=headers)
汤=美汤(第“lxml”页)
你对怎么做有什么想法吗

像这样的东西

import requests
from bs4 import BeautifulSoup

headers = {'User-Agent':' Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36'}


def func_go(URL):
    page = requests.get(URL, headers=headers)
    soup = BeautifulSoup(page, 'lxml')
    for search_result in soup.find_all(attrs={"search-result-index":True}):
        print(search_result.name.text)

        if search_result == soup.find_all(attrs={"search-result-index":True})[-1]:
            URL = soup.select_one('li.a-last [href]')['href']
            func_go(URL)




func_go('www.example.com')

能否在函数中包含原始for循环,并将html(或bs4页面对象)作为参数,然后使用新页面再次调用该函数?你应该阅读这一页关于递归的内容:请分享你试图刮取的链接和搜索条件。将其转换为函数,然后你可以使用
循环函数,而True
则可以完美地工作!非常感谢。