Python 抓取知乎图片(selenium的示例)

太过爱你忘了你带给我的痛 2021-11-23 01:06 496阅读 0赞

搭建Selenium运行环境

安装selenium

  1. pip install selenium

安装ChromeDriver

注:笔者使用的是Chrome浏览器,需要安装对应版本的 ChromeDriver。

先在Chrome浏览器输入,查看浏览器版本(chrome://version/),再下载对应版本的ChromeDriver

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hlbGxva2FuZHk_size_16_color_FFFFFF_t_70

下载地址(以下两个都可以):

https://sites.google.com/a/chromium.org/chromedriver/downloads

http://chromedriver.storage.googleapis.com/index.html

选择对应版本下载:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hlbGxva2FuZHk_size_16_color_FFFFFF_t_70 1

示例代码

测试,运行以下脚本,最终打开百度网址,证明运行成功。

  1. import re
  2. import time
  3. import urllib.request
  4. from selenium import webdriver
  5. chrome_driver = 'G:\\software_develop_tools\\chromedriver.exe'
  6. driver = webdriver.Chrome(executable_path = chrome_driver)
  7. driver.maximize_window()
  8. driver.get("https://www.baidu.com")# 通过get()方法,打开一个url站点

小试牛刀,抓取知乎上的图片:

  1. #-*- coding: utf-8 -*-
  2. import re
  3. import time
  4. import urllib.request
  5. from selenium import webdriver
  6. chrome_driver = 'G:\\software_develop_tools\\chromedriver.exe'
  7. driver = webdriver.Chrome(executable_path = chrome_driver)
  8. #driver = webdriver.Chrome()
  9. #driver = webdriver.Firefox()
  10. driver.maximize_window()
  11. driver.get("https://www.zhihu.com/question/29134042")
  12. i = 0
  13. while i < 10:
  14. driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
  15. time.sleep(2)
  16. try:
  17. driver.find_element_by_css_selector('button.QuestionMainAction').click()
  18. print("page" + str(i))
  19. time.sleep(1)
  20. except:
  21. break
  22. result_raw = driver.page_source #网页源代码
  23. content_list = re.findall("img src=\"(.+?)\" ", str(result_raw))
  24. n = 0
  25. while n < len(content_list):
  26. print( 'content_list[%d] : %s' % (n, content_list[n]) )
  27. _time = time.time()
  28. _file = ('C:\\Users\\Kandy\\Desktop\\zhihu\\%s.jpg' % (str(_time)))
  29. urllib.request.urlretrieve(content_list[n], _file)
  30. n = n + 1

发表评论

表情:
评论列表 (有 0 条评论,496人围观)

还没有评论,来说两句吧...

相关阅读

    相关 scrapy抓取全部用户信息

    先说一下核心思想,从一个大v开始,抓取他的关注和粉丝,然后再遍历这两个群体,再抓关注和粉丝,层层抓下去,就会覆盖知乎的所有用户。 好,让我们先分析分析知乎这个网站,提示一下知