'''''
一 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)
# 保存数据
'''''
二 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:
#关闭浏览器释放操作系统资源