暂时对 selenium 库没有一点点了解。。。先记录一下这个能用的代码
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.webdriver import WebDriver
def save_list(List, save_path): # 爬下来的数据是通过list保存的
with open(save_path, 'a') as f: # 'a'增加
for raw_word in List:
f.write(raw_word + '\n') # 以换行符分割
class GetWords:
def __init__(self):
self.driver: WebDriver = webdriver.Chrome()
def open_site(self, url):
self.driver.get(url)
time(5)
def get_words(self, xpath, item_type, save_path):
raw_words = []
container = self.driver.find_element(By.XPATH, xpath)
words = container.find_elements(By.TAG_NAME, item_type)
for word in words:
raw_words.apprnd(word.text)
save_list(raw_words, save_path)
def close_browser(self):
self.driver.quit()
def main():
GW = GetWords()
GW.open_web('https:// xxxxx')
save_path = r'C:xxx'
GW.get_words(xpath, item_type)
GW.close_browser()
①:由于使用的是谷歌浏览器,所以下载对应浏览器及对应其版本的插件;
②:复制要爬取数据的网址;
③:在目标网页上按F12获取要爬取数据的xpath和item type;
item type:
①:li 表示HTML列表中的列表项
②:p 表示HTML中的段落
③:pre 表示HTML中的预格式化文本
④:使用find_element和find_elements方法;