【发布时间】:2020-07-22 21:43:50
【问题描述】:
我有一个博客网站,网站上有多页帖子。我需要遍历网站上的每个页面并下载每个页面的 html 代码并将其存储在列表中。
我正在使用 Chromedriver 打开每个网站。到目前为止,我已经尝试使用 range 函数来遍历总页数(16)
from selenium import webdriver
import os
import time
from webdriver_manager.chrome import ChromeDriverManager
list_88 = []
for i in range(17):
chromedriver_path = os.getcwd() + '/chromedriver'
driver = webdriver.Chrome(ChromeDriverManager().install())
driver.get('https://eller.arizona.edu/departments-research/centers-labs/entrepreneurship/news-events/news?page=0')
link_url = driver.find_element_by_tag_name('a')
time.sleep(10)
html = driver.page_source
list_88.append(html)
driver.close()
但是,当我运行此代码时,它会反复打开相同的页面并下载相同的 html。我知道我需要在 for 循环中的某处指定 (i) 以便每次打开不同的页面,但我对 chromedriver 不太熟悉。我尝试附加:
driver.get('https://eller.arizona.edu/departments-research/centers-labs/entrepreneurship/news-events/news?page=0').format(i)
但我收到错误消息:
'NoneType' object has no attribute 'format'
当我使用 requests.get 时,我使用了类似的东西:
for i in range(15):
url = "https://eller.arizona.edu/departments-research/centers-labs/entrepreneurship/news-events/news?page=0"
reqs = requests.get(url)
这对我有用,但是我想使用 chromedriver 来做到这一点。有什么想法可以从一个 url 遍历多个页面并将 url 的每个页面中的 html 下载到列表中吗?
谢谢!
【问题讨论】:
标签: python for-loop format selenium-chromedriver range