【发布时间】:2021-07-23 16:38:02
【问题描述】:
我已经构建了一个具有父 URL 和许多子 URL 的爬虫。我用孩子们的 url 建立了一个列表,并循环遍历它 - 都是 https-。但是,当我到达循环的第二个对象时,它会添加一个后缀 (?Nao=0) 并再次抓取父对象。
我在下面说明:
links_products = ['https://www.target.com/c/grocery-deals/-/N-5xt0rZ55e6uZ55e69Z55e6tZ5tdv0r&Nao=24',
'https://www.target.com/c/grocery-deals/-/N-5xt0rZ55e6uZ55e69Z55e6tZ5tdv0r&Nao=48',
'https://www.target.com/c/grocery-deals/-/N-5xt0rZ55e6uZ55e69Z55e6tZ5tdv0r&Nao=72']
from selenium import webdriver
driver = webdriver.Chrome('/home/chromedriver')
for i in links_products:
driver.get(i)
print(driver.current_url)
结果 - 在每个 url 的末尾添加了 '?Nao=0'-。
https://www.target.com/c/grocery-deals/-/N-5xt0rZ55e6uZ55e69Z55e6tZ5tdv0r&Nao=24?Nao=0
https://www.target.com/c/grocery-deals-/N-5xt0rZ55e6uZ55e69Z55e6tZ5tdv0r&Nao=48?Nao=0
https://www.target.com/c/grocery-deals-/N-5xt0rZ55e6uZ55e69Z55e6tZ5tdv0r&Nao=72?Nao=0
我已经尝试添加
driver.execute_script('window.history.go(-1)')
driver.refresh()
print(driver.current_url)
然后它会打印出我真正想要抓取的网址:
https://www.target.com/c/grocery-deals/-/N-5xt0rZ55e6uZ55e69Z55e6tZ5tdv0r&Nao=24
https://www.target.com/c/grocery-deals/-/N-5xt0rZ55e6uZ55e69Z55e6tZ5tdv0r&Nao=48
https://www.target.com/c/grocery-deals/-/N-5xt0rZ55e6uZ55e69Z55e6tZ5tdv0r&Nao=72
但是只刮了上面三个链接的父级的三倍,即:https://www.target.com/c/grocery-deals/-/N-5xt0rZ55e6uZ55e69Z55e6tZ5tdv0r
关于如何绕过此问题的任何建议?
ps。如上所述,如果我通过循环或单击“下一步”按钮,则相同。这一切都回到了父母身上。
【问题讨论】:
标签: python web-scraping