目录

一、学习资源:

二、知识点介绍

1、urlib库的基本使用 ​

2、使用实例

①获取网页源码

②从服务器下载网页、图片、视频

3、UA介绍

①简介

②实例

三、项目详细讲解

1、分析

2、步骤

(1)请求对象定制

(2)获取响应数据

(3)下载数据

3、整体思路

四、项目源码


一、学习资源:

尚硅谷Python爬虫教程小白零基础速通(含python基础+爬虫案例)_哔哩哔哩_bilibili大家记得一键三连【点赞、投币、收藏】感谢支持~本教程适合想掌握爬虫技术的学习者,以企业主流版本Python 3.7来讲解,内容包括:Python基础、Urllib、解析(xpath、jsonpath、beautiful)、requests、selenium、Scrapy框架等。针对零基础的同学可以从头学起,有Python基础的同学建议直接从第52集开始学习爬虫部分视频。教程中示例多种网站的爬取,https://www.bilibili.com/video/BV1Db4y1m7Ho?p=86

这位老师讲的很有激情,并知识点和逻辑清晰,强烈推荐

二、知识点介绍

1、urlib库的基本使用 

2、使用实例

①获取网页源码

②从服务器下载网页、图片、视频

3、UA介绍

①简介

         之所以用UA是因为一些网站为了防止用爬虫去爬取网页信息所设置的一个检查机制,服务器要识别客户的操作系统及版本等数据,但是用正常的爬虫去爬取就不包含这些信息,所以要进行对象定制,让服务器以为我们是真的从浏览器中访问的。

②实例

三、项目详细讲解

1、分析

①首先要获取url,但是因为要获取前十页的数据,url是一个变量,通过对网页的检查可以发现网页的url有规律,其起始页为(page-1)*20,其每页20个数据。

​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        

②然后将data解析为unicode编码的数据,然后再和起始链接组合成为新的链接        

2、步骤

(1)请求对象定制

解决了url的问题之后,请求对象的定制就变得简单了,就是把之前的内容进行了封装

(2)获取响应数据

相应的获取响应数据也是把之前的代码进行封装

(3)下载数据

将获取到的网页数据写入文件即可

文件内容:

3、整体思路

①通过一个主程序入口进入,也就是main函数

②输入起始页码和结束页码

③通过循环遍历的方式去获取数据,此处采用for循环,range函数是左闭右开的,所以结束的位置要加1才能到达效果

④请求对象定制,用函数实现其功能(create_request),定义函数时不知道其返回值和传递值,可以不写,然后再根据需要去添加。定义函数时发现需要所处页面的值,则传入加上page。

⑤获取相应数据,用函数实现其功能(get_content),同样的,定义函数时不知道其返回值和传递值则先不写,然后再根据需要去添加。定义函数是发现需要上一个的对象,则create_request需要返回一个对象(request),把create_request()函数完善

⑥下载数据,存储到文件中,用函数实现其功能(down_load),同样的,定义函数时不知道其返回值和传递值则先不写,然后再根据需要去添加。定义函数时发现需要网页数据,则get_content需要返回内容,完善get_content函数()。

四、项目源码

# coding=utf-8
import urllib.request
#https://movie.douban.com/j/chart/top_list?type=5&interval_id=100%3A90&action=&start=0&limit=20#https://movie.douban.com/j/chart/top_list?type=5&interval_id=100%3A90&action=&start=20&limit=20#https://movie.douban.com/j/chart/top_list?type=5&interval_id=100%3A90&action=&start=40&limit=20#page   1    2    3     4
#start  0    20   40    60#start=(page-1)*20#下载豆瓣电影前十页的数据#(1)请求对象的定制
#(2)获取响应的数据
#(3)下载数据import urllib.parse
import urllib.request
#(1)请求对象的定制
def create_request(page):base_url='https://movie.douban.com/j/chart/top_list?type=5&interval_id=100%3A90&action=&'data={'start' :(page-1)*20,'limit':20}data = urllib.parse.urlencode(data)#解析data将data变为unicode编码url = base_url + dataheaders = {"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36"}request = urllib.request.Request(url=url,headers=headers)return  request
#(2)获取响应的数据
def get_content(request):response = urllib.request.urlopen(request)content = response.read().decode('utf-8')return content
#(3)下载数据
def down_load(page,content):with open('douban_' + str(page) +'.json','w',encoding='utf-8') as fp:fp.write(content)
#程序入口
if __name__ == '__main__':start_page = int(input('请输入起始页码'))end_page = int(input('请输入结束的页面'))for page in range(start_page,end_page+1) :#左闭右开#每一页都有自己的请求对象的定制request = create_request(page)#获取响应的数据content = get_content(request)#下载down_load(page,content)

​​​​​​​

爬虫项目之豆瓣电影排行榜前10页相关推荐

  1. python爬取豆瓣电影top250并保存为xlsx_python 爬虫获取豆瓣电影排行榜前250并写入excel...

    豆瓣电影排行榜前250 分为10页,第一页的url为https://movie.douban.com/top250,但实际上应该是https://movie.douban.com/top250?sta ...

  2. python爬虫爬取豆瓣电影排行榜并通过pandas保存到Excel文件当中

    我们的需求是利用python爬虫爬取豆瓣电影排行榜数据,并将数据通过pandas保存到Excel文件当中(步骤详细) 我们用到的第三方库如下所示: import requests import pan ...

  3. [爬虫] 爬取豆瓣电影排行榜

    申明:本文对爬取的数据仅做学习使用,不涉及任何商业活动,侵删 爬取豆瓣电影排行榜 这是一个Scrapy框架入门级的项目, 它可以帮助我们基本了解Scrapy的操作流程和运行原理 这次我们要做例子的网站 ...

  4. python爬虫爬取豆瓣电影排行榜,并写进csv文件,可视化数据分析

    #1.爬取内容,写进csv文件 import requests import re import csv #豆瓣电影排行榜,写进csv文件 url = "https://movie.doub ...

  5. python爬电影排名用os bs4_Pyhton网络爬虫实例_豆瓣电影排行榜_BeautifulSoup4方法爬取...

    -----------------------------------------------------------学无止境------------------------------------- ...

  6. 爬虫爬取豆瓣电影排行榜

    import requests import re # 此模块专门用来提取有效信息url = 'https://movie.douban.com/top250' head = {'User-Agent ...

  7. 爬取豆瓣电影排行榜前250

    环境:python3.6 + BeautifulSoup 爬取一页的电影信息 对应网址:https://movie.douban.com/top250 import requests # 导入网页请求 ...

  8. 爬虫实例之豆瓣电影排行榜

    from bs4 import BeautifulSoup from lxml import html import xml import requests#不加头部直接爬取的话,返回值为空 head ...

  9. JAVA爬虫(一):豆瓣电影排行榜爬取

    JAVA爬虫(一):豆瓣电影排行榜爬取 前言 流程图 步骤 一.爬取豆瓣电影榜单网页源代码 二.网页源码解析 三.爬取单个电影网页源码 四.源代码解析及关键信息获取 前言 最近和大创队友一起给大创做的 ...

最新文章

  1. GBDT原理与泰勒展开
  2. 计算机基础知识第四章测试,计算机基础知识测试题第四章
  3. 引入 ServletContextListener @Autowired null 解决办法
  4. 计算机网络 | 网络层 :IP协议详解
  5. 【TensorFlow-windows】学习笔记七——生成对抗网络
  6. 半波对称振子方向图_第一讲 天线的方向图(下).pdf
  7. 英文聊天常用缩写单词
  8. 5gnr帧结构特点有哪些_低合金结构钢有哪些特点?
  9. Windows Server 2012搭建文件服务器
  10. 李宏毅2021机器学习笔记——Local Minimum And Saddle Point
  11. el-table行合并,单列行合并或者指定列合并行
  12. 用卷积神经网络实现笑脸、非笑脸表情识别
  13. 【软件工具】百度搜索技巧
  14. 怎么用计算机打吃鸡,想要用电脑玩绝地求生手游吗?这几个模拟器满足你
  15. 树莓派安装系统及常用软件设置
  16. Manifest merger failed with multiple errors, see logs问题处理
  17. ChatGPT简要解读(一) - 原理分析与性能提升篇
  18. 美股怎么交易?有哪些美股做空交易策略?
  19. 近期Android错误
  20. 打工和创业那个更合算?

热门文章

  1. android studio aspectj使用,androidStudio中使用 AspectJ
  2. java 代码锁_Java中的Lock锁
  3. html中使用什么标签做的导航栏_自媒体人如何自己建立一个手机网站,超简单,任何人都能做...
  4. python各进制的表述与转换
  5. mysql索引创建和使用注意事项
  6. STL9-vector容器
  7. opencv10-形态学操作
  8. SHOI2009 会场预约
  9. office如何快速删除重复数据
  10. CSS3弹性盒子Flex