'''''
一 requests爬取豆瓣
- 请求url
https://movie.douban.com/top250
- 请求方式
GET
- 请求头
user-agent
cookies
爬取电影信息
电影名称
电影url
导演
主演
电影年份
电影类型
电影评分
评论人数
简介
1 分析所有主页url
第一页
https://movie.douban.com/top250?start=0&filter=
第二页
https://movie.douban.com/top250?start=25&filter=
'''''
import requests import re
#爬虫三部曲
#1.发送请求
def get_page(url): response=requests.get(url) return response
#2.解析数据
def parse_index(html): movie_list=re.findall('<div class="item">.*?<em class="">(.*?)</em>.*?<a href="(.*?)">.*?<span class="title">(.*?)</span>.*?导演:(.*?)主演:(.*?)<br>(.*?)</p>.*?<span class="rating_num".*?>(.*?)</span>.*?<span>(.*?)人评价</span>.*?<span class="inq">(.*?)</span>', html, re.S) return movie_list
#排名
#电影名称
#电影url
#导演
#主演
#电影年份
#电影类型
#电影评分
#评论人数
#简介
#保存数据
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} ======================= \n \n ''' print(data) with open('douban_top250.text', '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)
# 保存数据
save_data(movie)
'''''
二 selenium请求库
1.什么是selenium
期初是一个自动化测试工具,原理是驱动浏览器执行一些一定好的操作。爬虫本质
上就是模拟浏览器,所以可以用它来做爬虫。
2.为什么要用selenium
优点:
-执行js代码
-不需要分析复杂的通信流程
-可以对浏览器做弹窗,下拉操作
-******可以获取动态数据
-***破解登入验证
缺点:
-执行效率低
3.安装与使用
1.安装selenium请求库
pip3 install selenium
2.必须安装浏览器
谷歌
3.安装浏览器驱动
'''''
from selenium import webdriver #web驱动 from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support.wait import WebDriverWait import time import time
#方式一:通过驱动打开浏览器
driver=webdriver.Chrome(r'C:\Users\asus\Desktop\phy\Scripts\chromedriver.exe')
#方式二:放入python解释器scripts文件夹中
#python解释器安装目录/scripts配置环境变量
#python解释器安装目录 配置环境变量
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()