Instagram爬行向下滚动...与python selenium

时间:2018-05-10 11:43:30

标签: python selenium web-crawler instagram

total_link = []

temp = ['a']

total_num = 0

while driver.find_element_by_tag_name('div'):
    driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
    Divs=driver.find_element_by_tag_name('div').text


    html = driver.page_source
    soup = BeautifulSoup(html, 'html.parser')
    my_titles = soup.select(
    'div._6d3hm > div._mck9w'
    )

    for title in my_titles:
        try:
            if title in temp:
                #print('중복')
                pass
            else:
                #print('중복이 아니다')
                link = str(title.a.get("href")) #주소를 가져와!
                total_link.append(link)
                #print(link)

        except:
            pass
    print("현재 모은 개수: " + str(len(total_link)))

    temp = my_titles
    time.sleep(2)
    if 'End of Results' in Divs:
        print('end')
        break
    else:
        continue
  

块引用   您好我正在使用韩国的标签抓取Instagram数据。       我的代码包含在以下内容中。

  1. 向下滚动页面

    1. 使用bs4和请求,获取他们的HTML
    2. 找到时间日志,图片src,文本,标签,ID
    3. 的点
    4. 全部选中,然后抓取它。
    5. 完成页面上的HTML后,向下滚动
    6. 直到最后做同样的事情
    7. 通过这样做,并使用本网站的人员代码,它似乎工作...... 但是在几次滚动下降后,在某些点,滚动停止并显示错误消息

      '읽어드리지못합니다'或者用英语'无法阅读'

      我能否知道错误弹出的原因以及如何解决问题? 我正在使用python和selenium 谢谢你的回答

1 个答案:

答案 0 :(得分:0)

Instagram正在尝试防止恶意攻击,例如抓取或任何其他自动化方式。当您尝试异常快速地访问Instagram页面时,通常会发生这种情况。因此,您必须更频繁或更长时间地设置time.sleep()选项。