本期,利用python爬虫中的selenium来爬取百度榜单指数,要爬取的网站截图如下:
具体python代码如下:
from selenium import webdriverfrom selenium.webdriver.chrome.service import Servicefrom selenium.webdriver.common.by import Byfrom selenium.webdriver.chrome.options import Optionsfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as ECimport pandas as pd # 设置 ChromeDriver 的选项chrome_options = Options()chrome_options.add_argument('--headless') # 无界面模式,不打开浏览器窗口chrome_options.add_argument('--no-sandbox')chrome_options.add_argument('--disable-dev-shm-usage') # 启动 Chrome 浏览器驱动driver = webdriver.Chrome(r'C:\Users\XXX\AppData\Local\Google\Chrome\Application\chromedriver.exe', options=chrome_options) # 访问网页driver.get('https://top.baidu.com/board?tab=realtime')wait = WebDriverWait(driver, 10) # 获取实时排行榜的内容及热搜指数rankings = driver.find_elements(By.XPATH, '//div[@class="c-single-text-ellipsis"]')indexs=driver.find_elements(By.XPATH, '//div[@class="hot-index_1Bl1a"]') #保存成csv文件data=[]for ranking,index in zip(rankings,indexs) : data.append([ranking.text,index.text])all_data = pd.DataFrame (data=data,columns ={'热搜榜单','热搜指数'})all_data.to_csv('百度热搜指数排行.csv')# 关闭浏览器驱动driver.quit()
运行结果为:
是不是很简单?同理,可以改改网址,爬取一下剩下的几个选项:小说、电影、电视剧、汽车、游戏板块。
自己动手试试吧