设为首页 加入收藏

TOP

Day 02(一)
2019-07-03 02:09:56 】 浏览:72
Tags:Day
昨日回顾:
一 爬虫基本原理
- 爬虫全过程
1.发送请求
2.接受响应数据
3.解析并提取有价值的数据
4.保存数据
二 Requests请求库
- get
url
headers
cookies
- post
url
headers
cookies
data
三 爬取校花网视频
1.通过主页解析提取详情页
2.通过详情页提取视频url
3.获取视频的二进制流写进本地
四 自动登录github
1.分析请求头与请求体信息
- 用户名
- 密码
- token
- 杂七杂八
2.token
- 通过对login页面的解析提取
3.对session_url发送请求
- headers:
- user_agent
- cookiels:
- login页面的cookies
- data:
- from_data
今日内容:
一 request 请求库爬取豆瓣电影信息
- 请求url
https://movie.douban.com/top250
- 请求方式
GET
- 请求头
user-agent
cookies
二 selenium请求库
1、什么事selenium?
最初是一个自动化测试工具,原理是驱动浏览器执行一些一定好的操作。
爬虫本质上就是模拟浏览器,所以可以使用它来做爬虫。
2、为什么要使用selenium?
优点:
- 执行js代码
- 不需要分析复杂的通信流程
- 对浏览器做弹窗、下拉等操作
- 获取动态数据 *****
- 破解登录验证 ***
缺点:
- 执行效率低
3、安装与使用
1.安装selen请求库
pip3 install selenium
2.必须安装浏览器
谷歌或者火狐
3.安装浏览器驱动
http://npm.taobao.org/mirrors/chromedriver/2.38/

测试用例
01?爬取豆瓣电影TOP250
 1 '''
 2 爬取豆瓣电影信息:  3  电影排名、电影名称、电影url、电影导演  4  电影主演、电影年份/电影类型  5  电影评分、电影评论、电影简介  6 1、分析所有主页的url  7  第一页:https://movie.douban.com/top250?start=0&filter=  8  第二页:https://movie.douban.com/top250?start=25&filter=  9  第三页:https://movie.douban.com/top250?start=50&filter= 10 '''
11 import requests 12 import re 13 # 爬虫三部曲
14 # 1.发送请求
15 def get_page(url): 16     response = requests.get(url) 17     return response 18 # 2.解析数据
19 '''
20 <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> 21 '''
22 def parse_index(html): 23     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) 24     return movie_list 25 # 3.保存数据
26 def save_data(movie): 27     top, m_url, name, director, actor, year_type, point, commit, desc = movie 28     year_type = year_type.strip('\n') 29     year_type = year_type.replace(' ', '') 30     data = f'''' 31  ?=========================== 影片信息 ============================? 32  电影排名:{top} 33  电影url:{m_url} 34  电影名称:{name} 35  电影导演:{director} 36  电影主演:{actor} 37  年份类型:{year_type} 38  电影评分:{point} 39  电影评论:{commit} 40  电影简介:{desc} 41  ?======================= 影片信息加载完毕 ========================? 42         '''
43     print(data) 44 
45     with open('douban_top250.txt','a',encoding='utf-8') as f: 46  f.write(data) 47 
48 if __name__ == '__main__': 49     # 拼接所有主页
50     num = 0 51     for line in range(10): 52         url = f'https://movie.douban.com/top250?start={num}&filter='
53         num += 25
54         print(url) 55 
56         # 1.往每个主页发送请求
57         index_res = get_page(url) 58 
59         # 2.解析主页获取电影信息
60         movie_list = parse_index(index_res.text) 61 
62         for movie in movie_list: 63             # 3.保存数据
64             save_data(movie)

 

02?selenium基本使用
 1 from selenium import webdriver #web驱动
 2 from selenium.webdriver.common.by import By  # 按照什么方式查找,By.ID,By.CSS_SELECTOR
 3 from selenium.webdriver.common.keys import Keys  # 键盘按键操作
 4 from selenium.webdriver.support import expected_conditions as EC  #
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Python解释器安装及环境变量配置 下一篇python批量json文件转xml文件脚本..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目