(.*?)
.*?(.*?) .*?(.*?)人评价.*?(.*?)', html, re.S) return movie_list def save_data(movie): top, m_url, name, daoyan, actor, year_type, \ point, commit, desc = movie year_type = year_type.strip('\n') data = f''' 电影名称:{top} 电影url:{m_url} 电影导演:{name} 电影主演:{daoyan} 电影年份:{actor} 电影类型:{year_type} 电影评分:{point} 电影评论:{commit} 电影简介:{desc} ''' print(data) with open('douban_top250.txt','a',encoding='utf-8') as f: f.write(data) print(f'电影:{name} 写入成功') if __name__=='__main__': #拼接所有主页 num = 0 for line in range(10): url = f'https://movie.douban.com/top250?start={num}&filter=' num += 25 print(url) index_res = get_page(url) movie_list = parse_index(index_res.text) for movie in movie_list: # print(movie) # 3.保存数据 save_data(movie)
1.什么是selenium 期初是一个自动化测试工具 原理是驱动浏览器执行一些一定好的操作 爬虫本质是模拟浏览器,所以可以用它来做爬虫 2.为什么使用selenium 优点: 执行js代码 不需要分析复杂的通信流程 可以对浏览器做弹窗,下拉等操作 获取动态数据 破解登陆验证 缺点: 执行效率低 安装与使用 1. 安装selenium请求库: pip3 install selenium 2. 必须安装浏览器 "谷歌"或者火狐 3.安装浏览器驱动 http://npm.taobao.org/mirrors/chromedriver/2.38/ windows: 下载win32驱动 fromseleniumimportwebdriver#web驱动 fromselenium.webdriver.chrome.webdriverimportWebDriver fromselenium.webdriver.common.byimportBy#按照什么方式查找,By.ID,By.CSS_SELECTOR fromselenium.webdriver.common.keysimportKeys#键盘按键操作 fromselenium.webdriver.supportimportexpected_conditionsasEC#和下面WebDriverWait一起用的 fromselenium.webdriver.support.waitimportWebDriverWait#等待页面加载某些元素 importtime importtime #方式一:通过驱动打开浏览器 #driver=webdriver.Chrome(r'驱动的绝对路径/webdriver.exe') #方式二:把webdriver.exe驱动放到python解释器安装目录/Scripts文件夹中 #python解释器安装目录/Scripts配置环境变量 #python解释器安装目录配置环境变量 driver=webdriver.Chrome() try: driver.get('https://www.jd.com/') #获取显式等待对象10秒 #可以等待某个标签加载10秒 wait=WebDriverWait(driver,10) #查找元素id为key input_tag=wait.until(EC.presence_of_element_located( (By.ID,'key') )) time.sleep(5) #在输入框内输入商品名称 input_tag.send_keys('公仔') #按下键盘回车键 input_tag.send_keys(Keys.ENTER) time.sleep(20) finally: #关闭浏览器释放操作系统资源 driver.close()