在Python中用硒/美丽汤刮Flickr-ABSWP

时间:2018-07-02 05:09:58

标签: python selenium web-scraping beautifulsoup

我正在学习使用Python自动进行无聊的事情,我被困在有关从互联网下载数据的章节中。任务之一是从Flickr下载给定关键字的照片。

我在抓取该网站时遇到了很大的问题。我尝试了BeautifulSoup(我认为在这种情况下不适合,因为它使用Javascript)和Selenium。查看html,我认为我应该找到“ overlay”类。但是,无论我使用哪个选项(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中键入示例关键字:“工业设计内部”

1 个答案:

答案 0 :(得分: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 如果您可以更详细地了解要完成的工作,那么我将能提供更多帮助。

相关问题