利用 Selenium 和 Python 实现网页新闻链接抓取
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time
# 初始化webdriver
driver_path = 'chromedriver的路径'
driver = webdriver.Chrome(executable_path=driver_path)
# 打开新闻网站
driver.get('http://www.xinhuanet.com/')
# 等待页面加载完成
wait = WebDriverWait(driver, 10)
# 滚动到页面底部
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
# 获取所有新闻标题和链接
news_items = wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, 'div#wrap div.newslist_li')))
news_links = [item.find_element_by_css_selector('a').get_attribute('href') for item in news_items]
news_titles = [item.find_element_by_css_selector('a').text for item in news_items]
# 打印新闻标题和链接
for title, link in zip(news_titles, news_links):
print(title, link)
# 关闭浏览器
time.sleep(2) # 等待2秒,以便于观察结果
driver.quit()
这段代码使用了Selenium和Chrome的webdriver来打开新闻网站,滚动到页面底部,并抓取了新闻标题和链接。它展示了如何使用CSS选择器定位元素,并使用了WebDriverWait来等待页面加载完成。最后,它打印了新闻标题和链接,并在完成后关闭了浏览器。
评论已关闭