day02

'''''
一 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()

  



上一篇:python爬虫Day 02


下一篇:Day2 requests爬取豆瓣电影信息及selenium请求库