Python 使用BeautifulSoup进行网页抓取

Python 使用BeautifulSoup进行网页抓取,python,web-scraping,beautifulsoup,python-beautifultable,Python,Web Scraping,Beautifulsoup,Python Beautifultable,我是新用户,我正在尝试将此网页的每个产品的链接添加到所有子页面(1-8): 我在每一页上都有一个循环,但由于某些原因,在第7页上它只显示了20种产品,而在第8页上没有显示任何产品 这是一个函数,用于获取每个页面上每个产品的所有URL: def get_all_product_url(base_url): # Set up link and gets all URLs page = requests.get(base_url, stream=True) soup = Bea

我是新用户,我正在尝试将此网页的每个产品的链接添加到所有子页面(1-8):

我在每一页上都有一个循环,但由于某些原因,在第7页上它只显示了20种产品,而在第8页上没有显示任何产品

这是一个函数,用于获取每个页面上每个产品的所有URL:

def get_all_product_url(base_url):
    # Set up link and gets all URLs
    page = requests.get(base_url, stream=True)
    soup = BeautifulSoup(page.content, 'html.parser',from_encoding='utf-8')
    url_list = []
    try:
        products = soup.find_all('div', {'class':'jsx-3418419141 product-thumbnail'})
    except:
        return url_list
    for i in products:
        url = i.find("a").get('href')
        if 'https://www.sodimac.cl' in url:
            url_list.append(url)
        else:
            url_list.append('https://www.sodimac.cl'+url)
    # Return all web address without duplicates
    return list(set(url_list))
当我在第8页运行它时,我会得到一个雇员列表

base_url = "https://www.sodimac.cl/sodimac-cl/category/scat359268/Esmaltes-al-agua?currentpage=8"
page = requests.get(base_url, stream=True)
soup = BeautifulSoup(page.content, 'html.parser',from_encoding='utf-8')
url_list = get_all_product_url(base_url)
url_list
如果在第1页运行它,您将得到28个条目

base_url = "https://www.sodimac.cl/sodimac-cl/category/scat359268/Esmaltes-al-agua?currentpage=1"
page = requests.get(base_url, stream=True)
soup = BeautifulSoup(page.content, 'html.parser',from_encoding='utf-8')
url_list = get_all_product_url(base_url)
url_list
任何帮助我都会很感激的


谢谢

这是因为第1页返回“Tu búsqueda de”“no arrojóresultados.”顺便说一句,这是“刮伤”,不是“刮伤”。谢谢,迈克,但我没有跟上你。这些是我在第1页中得到的一些元素-[“”,“”,“”,“”,“”,“”,第8页是空的,因为只有7页。很抱歉,当我应该写第8页时,我只写了第1页。当我在浏览器中粘贴一个页面时,我仍然会看到一个页面,上面写着“Tu búsqueda de no arrojóresultados”,而“=1”最后我得到了一个合适的列表。所以Ares Zephyr做对了。该站点将HTTP请求重定向到“no resultados”页面。