【问题标题】:empy arrays when scraping instagram post links抓取 instagram 帖子链接时清空数组
【发布时间】:2020-07-30 18:42:23
【问题描述】:

我正在按照这里的指南进行操作: https://medium.com/swlh/tutorial-web-scraping-instagrams-most-precious-resource-corgis-235bf0389b0c

我过去可以使用它,但由于某种原因,现在它正在返回如下所示的空数组,而不是永久链接列表

C:\Users\19053\InstagramPublicImageDownloader\venv\Scripts\python.exe C:/Users/19053/InstagramPublicImageDownloader/getpermalinks.py
[]
[]
[]
[]
[]
[]
[]
[]

应该是这样的

['https://www.instagram.com/p/CDRbCxjBakW/','https://www.instagram.com/p/CDMQ9J2Fvl4/','...and so on']

代码如下:

from selenium.webdriver import Chrome

url = "https://www.instagram.com/dairyqueen/"
browser = Chrome()
browser.get(url)
post = 'https://www.instagram.com/p/'
post_links = []
while len(post_links) < 25:
    links = [a.get_attribute('href') for a in browser.find_elements_by_tag_name('a')]
    for link in links:
        if post in link and link not in post_links:
            post_links.append(link)
            scroll_down = "window.scrollTo(0, document.body.scrollHeight);"
            browser.execute_script(scroll_down)
            time.sleep(10)
        else:
            print(post_links[:25])

【问题讨论】:

  • 以下答案是否解决了您的问题?如果是,请随时接受/支持 :)

标签: python arrays selenium web-scraping instagram


【解决方案1】:

要收集您的意思的 url,请使用这个 css 选择器div.v1Nh3.kIKUG._bz0w &gt; a,并使用WebDriverWait 而不是time.sleep(...)

您应该在循环块内将滚动条放置到底部并重复直到达到预期的元素数量。

试试下面的代码:

browser.get('https://www.instagram.com/dairyqueen/')

scroll_down = "window.scrollTo(0, document.body.scrollHeight);"

while True:
    links = WebDriverWait(browser, 20).until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR, 'div.v1Nh3.kIKUG._bz0w > a')))
    if(len(links) < 25):
        browser.execute_script(scroll_down)
    else:
        break

post_links = []
for link in links:
    post_links.append(link.get_attribute('href'))
    
print(post_links[:25])

导入后:

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

【讨论】:

    猜你喜欢
    • 2019-05-08
    • 2021-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-14
    • 1970-01-01
    • 2017-05-19
    相关资源
    最近更新 更多