python - 使用 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
解决方案
推荐阅读
- javascript - 当我在数字类型 v-text-field 上输入 cjk(korean) 时,Event.preventDefault 不起作用
- algorithm - 如何使用模运算符获得逆时针值?
- python - 如何 DM 正在执行命令的人
- angular - 编写需要按顺序运行的 e2e 测试的最佳实践是什么?
- node.js - 如何从 Firebase 云功能将视频上传到 youtube
- dart - Dart - true 和 false 都是编译时常量,为什么它不改变状态?
- sql - 正则表达式替换嵌套括号匹配中的字符,或仅替换匹配之外的文本
- networking - 如何在设置了 cookie 的情况下将请求重定向到不同的域/ip:port?
- windows-runtime - 是否可以为 Windows 运行时组件(C++/WinRT)添加版本?
- amazon-web-services - 为 Autoscaling Group 中的实例分配静态弹性 IP