【问题标题】:Scraping Flickr with Selenium/Beautiful soup in Python - ABSWP在 Python 中用 Selenium/Beautiful 汤刮 Flickr - ABSWP
【发布时间】:2018-07-02 05:09:58
【问题描述】:

我正在阅读 Automate Boring Stuff with Python,但我被困在关于从 Internet 下载数据的章节中。其中一项任务是从 Flickr 下载给定关键字的照片。

我在抓取这个网站时遇到了很大的问题。我试过 BeautifulSoup(我认为在这种情况下不合适,因为它使用 Javascript)和 Selenium。查看 html 我认为我应该找到“覆盖”类。但是,无论我使用哪个选项(find_element_by_class_name...by_text...by_partial_text)我都找不到这些元素(我得到:“。

您能帮我澄清一下我做错了什么吗?我也会感谢任何可以帮助我更好地理解此类案例的材料。谢谢!

这是我的简单代码:

import sys
search_keywords = sys.argv[1]
from selenium import webdriver
browser = webdriver.Firefox()

browser.get(f'https://www.flickr.com/search/?text={search_keywords}')
elems = browser.find_element_by_class_name("overlay")
print(elems)
elems.click()

我在 shell 中输入的示例关键字:“工业设计室内”

【问题讨论】:

    标签: python selenium web-scraping beautifulsoup


    【解决方案1】:

    您是否收到任何错误消息?使用 Selenium,将代码包含在 try/except 块中是很有用的。

    您到底想做什么,下载照片?稍微重写一下

    try:
         options = webdriver.ChromeOptions()
         #options.add_argument('--headless')
         driver = webdriver.Chrome(chrome_options = options)
         search_keywords = "cars"
         driver.get(f'https://www.flickr.com/search/?text={search_keywords}')
         time.sleep(1)
    
     except Exception as e:
         print("Error loading search results page" + str(e))
    
     try:
         elems = driver.find_element_by_class_name("overlay")
         print(elems)
         elems.click()
         time.sleep(5)
     except Exception as e:
         print(str(e))
    

    按预期加载页面,然后单击照片,将我们带到This Page 如果您能详细说明您想要完成的工作,我将能够提供更多帮助。

    【讨论】:

    • 感谢您的回复 - 代码运行良好 :) 是的,我正在尝试下载照片。我认为最高分辨率保存在子页面中的class="zoom-large" 下。我注意到在添加time.sleep 之后,我的代码也可以工作。我没有意识到我必须添加这个。我认为 Selenium 具有某种内置智能,它知道页面何时完全加载。
    • 你必须明确地让 selenium 等待。在selenium-python.readthedocs.io/waits.html 中检查element_to_be_clickable
    • 谢谢,在阅读了这篇文章后,我对“等待”这一点很清楚。
    猜你喜欢
    • 1970-01-01
    • 2018-04-22
    • 1970-01-01
    • 2016-02-27
    • 2021-03-11
    • 2019-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多