首页 > 解决方案 > 使用 Scrapy 遍历页面?urljoin 的问题。功能

问题描述

我一直在尝试遍历此网站上的页面:https ://www.harrisfarm.com.au

具体来说,杂货部分的起始 URL 为https://www.harrisfarm.com.au/collections/groceries?page=1

我已经尝试了 urljoin 方法来找到下一个按钮的@href

x = response.xpath(//li[@class="arrow "]/a/@href)

它返回 /collections/groceries?page=2 并且我想使用 urljoin 构建完整的 url

作为创建此示例的示例:

url_full = "https://www.harrisfarm.com.au" + x

然而它不工作....

作为第二种解决方案,我尝试遍历固定范围内的页面,即查询所有 43 个页面。

def get_links(root_url):
    set_of_links = set()

    for i in range(1, 44):
        r = root_url+"&page={}".format(i)
        print(r)
        
    return sorted(set_of_links)

for index, link in enumerate(get_links("https://www.harrisfarm.com.au/collections/groceries?"), start=1):
    print(index, link)

但这也行不通。看起来它正在扫描第二页几次并出错,因为它正在检测重复项。

回家后我可以提供完整的代码。

谢谢,

ps对python很陌生:D

标签: pythonscrapy

解决方案


推荐阅读