【发布时间】:2019-07-13 18:11:06
【问题描述】:
我用 python 和 selenium 创建了一个脚本来滚动到延迟加载网页的底部并从那里解析内容。我正在尝试从 instagram 获取连接到主题标签的所有链接。那里有大约 475 个结果,但我目前的尝试只得到了 38 个。
我创建的脚本可以滚动到该页面的底部,但在大约 475 个结果中我仍然得到 38 个结果。
到目前为止,我已经尝试过:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
tag = '#baltimorepizza'
hash_url = 'https://www.instagram.com/explore/tags/{}/'
def scroll_to_get_more():
check_height = driver.execute_script("return document.body.scrollHeight;")
while True:
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
try:
wait.until(lambda driver: driver.execute_script("return document.body.scrollHeight;") > check_height)
check_height = driver.execute_script("return document.body.scrollHeight;")
except TimeoutException:
break
def get_links(tag):
driver.get(hash_url.format(tag.strip("#").lower()))
scroll_to_get_more()
total_links = [item.get_attribute("href") for item in wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR,'.kIKUG > a')))]
print("Total link scraped:",len(total_links))
if __name__ == '__main__':
driver = webdriver.Chrome()
wait = WebDriverWait(driver,10)
get_links(tag)
driver.quit()
如何从 instagram 获取与该特定主题标签相关的所有链接?
【问题讨论】:
-
在执行 findElement 后滚动之前是否加载了链接?
-
在滚动过程中添加链接时,我得到了 437 个链接。但是,这样做时我无法达到 475 个链接。
标签: python python-3.x selenium selenium-webdriver web-scraping