一、爬虫的介绍及爬虫环境的安装:

1.爬虫简介:

即网络爬虫,是一种自动获取网页内容的程序。是搜索引擎的重要组成部分,因此搜索引擎优化很大程度上就是针对爬虫而做出的优化。

2.爬虫的基本工作流程及框架:

1.首先选取一部分精心挑选的种子URL;
2.将这些URL放入待抓取URL队列;
3.从待抓取URL队列中取出待抓取在URL,解析DNS,并且得到主机的ip,并将URL对应的网页下载下来,存储进已下载网页库中。此外,将这些URL放进已抓取URL队列。

4.分析已抓取URL队列中的URL,分析其中的其他URL,并且将URL放入待抓取URL队列,从而进入下一个循环。

3.接下来需要爬取的豆瓣电影排行榜网页界面为:

4.人工操作步骤:

1.获取电影信息的网页; 
2.找到要评分信息的位置; 
3.复制、保存我们想要的评分数据。

5.爬虫操作步骤:

1.请求并下载电影页面信息; 
2.解析并定位评分信息;

3.保存评分数据。

下面我们就使用requests和xpath来爬取豆瓣电影中的“电影名”、“导演”、“演员”、“评分”等信息。

6.爬虫前python环境的安装:

打开cmd,输入以下指令:

pip install requests

pip install lxml

二、正式开始爬虫的步骤:

1.导入模块:

2.获取豆瓣电影目标网页并解析:

豆瓣电影排行榜的网址为:

https://movie.douban.com/chart

首先设置headers,伪装成浏览器 #一些网站会设置一些反爬策略来限制爬取数据,所以就需要让爬虫伪装成浏览器取爬取数据

设置url为想爬取的网址

然后用requests.get()方法获取页面的text,

然后用etree.HTML()来解析下载的页面数据”data“

headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'  #伪装成浏览器
}
url = 'https://movie.douban.com/chart' #豆瓣电影排行榜
data = requests.get(url, headers=headers).text# 给定url并用requests.get()方法来获取页面的text

s=etree.HTML(data)#用etree.HTML()来解析下载的页面数据“data”。

获取电影的xpath信息:

这里的xpath信息要手动获取,获取方式如下:

1.如果你是用谷歌浏览器的话,鼠标“右键”–>“检查元素” 
2. Ctrl+Shift+C将鼠标定位到标题。

3.“右键”–> “Copy”–> “Copy Xpath”就可以复制xpath

如下图:

接下来我们获取了电影名称,电影网址,电影评分,电影评价的人数,电影的上映日期及主演等的xpath,发现这些xpath的前半部分都是相同的,所以我们就截取前半部分通用的xpath存放于file中.

例如:获取电影主演的xpath为://*[@id="content"]/div/div[1]/div/div/table[1]/tbody/tr/td[2]/div/p

其中需要把/tbody删除掉,不然获取不了想要的信息,然后只需把table[1]改为:table,就能获取该页面中的多个电影信息。

即截取前半部分的最终xpath为:

.//*[@id="content"]/div/div[1]/div/div/table/tr

利用time.sleep方法睡眠,防止怕太快被网站封了

利用for循环遍历file,然后用.xpath方法连接后半部分的xpath,定位到具体的内容,如果有额外的字符出现还可以用.strip()方法使其去掉,然后把内容存放在变量中。最后在循环内把每次获取到的值输出即可。

file=s.xpath('.//*[@id="content"]/div/div[1]/div/div/table/tr')#copy网页的xpath,截取前半部分通用的
time.sleep(3)#睡眠,防止爬太快被网站封了
scores='评分:'
evaluate='一句话评价:'
actor='上映日期及主演:'
for div in file:title = div.xpath("./td[1]/a/@title")[0]href = div.xpath("./td[1]/a/@href")[0]score=div.xpath("./td[2]/div/div/span[2]/text()")[0]num=div.xpath("./td[2]/div/div/span[3]/text()")[0].strip("(").strip().strip(")").strip()director = div.xpath("./td[2]/div/p/text()")[0]#截取后半部分的xpath,定位到具体的内容
    print(f"{title},{href},{actor}{director},{scores}{score},{num}\n")#输出爬取到的内容

该爬虫程序的完整代码如下:

from lxml import etree
import requests
import time#这里导入时间模块,以免豆瓣封你IP

headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'  #伪装成浏览器
}
url = 'https://movie.douban.com/chart' #豆瓣电影排行榜
data = requests.get(url, headers=headers).text# 给定url并用requests.get()方法来获取页面的text

s=etree.HTML(data)#用etree.HTML()来解析下载的页面数据“data”。
file=s.xpath('.//*[@id="content"]/div/div[1]/div/div/table/tr')#copy网页的xpath,截取前半部分通用的
time.sleep(3)#睡眠,防止爬太快被网站封了
scores='评分:'
evaluate='一句话评价:'
actor='上映日期及主演:'
for div in file:title = div.xpath("./td[1]/a/@title")[0]href = div.xpath("./td[1]/a/@href")[0]score=div.xpath("./td[2]/div/div/span[2]/text()")[0]num=div.xpath("./td[2]/div/div/span[3]/text()")[0].strip("(").strip().strip(")").strip()director = div.xpath("./td[2]/div/p/text()")[0]#截取后半部分的xpath,定位到具体的内容
    print(f"{title},{href},{actor}{director},{scores}{score},{num}\n")#输出爬取到的内容

爬取豆瓣电影排行榜的结果如下:

python爬虫实践——爬取豆瓣电影排行榜相关推荐

  1. python爬取豆瓣电影top250_用Python爬虫实现爬取豆瓣电影Top250

    用Python爬虫实现爬取豆瓣电影Top250 #爬取 豆瓣电影Top250 #250个电影 ,分为10个页显示,1页有25个电影 import urllib.request from bs4 imp ...

  2. python用bs4爬取豆瓣电影排行榜 Top 250的电影信息和电影图片,分别保存到csv文件和文件夹中

    python用bs4爬取豆瓣电影排行榜 Top 250的电影信息和图片,分别保存到csv文件和文件夹中. 爬取的数据包括每个电影的电影名 , 导演 ,演员 ,评分,推荐语,年份,国家,类型. py如果 ...

  3. 【Python爬虫】爬取猫眼电影排行榜并存放至csv文件

    在进行本节实战之前,希望您对requests库以及正则表达式有所了解. 运行平台:windows **Python版本: Python3.x ** 一.依赖库的安装 在本节实战之前,请确保已经正确安装 ...

  4. python爬虫,爬取豆瓣电影《芳华》电影短评,分词生成云图。

    项目github地址:https://github.com/kocor01/spider_cloub/ Python版本为3.6 最近突然想玩玩云图,动手写了个简单的爬虫,搭建了简单的爬虫架构 爬虫爬 ...

  5. Python爬虫实例-爬取豆瓣电影Top250

    这是本人Python爬虫实例的第二个实例,不过想来好像没有很大的难度所以适合当做新手入门的第一个爬虫.放在这里供大家参考. 本次实例爬取的网站为豆瓣电影Top250,使用到的第三方库有urllib,B ...

  6. 【Python爬虫】爬取豆瓣电影Top 250

    豆瓣电影 Top 250 导入第三方包 urllib模块介绍 引入模块 import urllib.request,urllib.parse,urllib.error 获取一个get请求 respos ...

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

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

  8. python爬取豆瓣电影top250_Python爬虫 - scrapy - 爬取豆瓣电影TOP250

    0.前言 新接触爬虫,经过一段时间的实践,写了几个简单爬虫,爬取豆瓣电影的爬虫例子网上有很多,但都很简单,大部分只介绍了请求页面和解析部分,对于新手而言,我希望能够有一个比较全面的实例.所以找了很多实 ...

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

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

  10. python大规模获取豆瓣影评_python爬取豆瓣电影排行榜(requests)

    ''' 爬取豆瓣电影排行榜 设计思路: 1.先获取电影类型的名字以及特有的编号 2.将编号向ajax发送get请求获取想要的数据 3.将数据存放进excel表格中 ''' 环境部署: 软件安装: 模块 ...

最新文章

  1. linux 监控多台机器人,在钉钉群中创建机器人并设置安全策略
  2. datatables php数据,html5 - datatables 加载不出来数据。
  3. 举例说明层次分析的三大原则_一起来复习下陈印老师关于多选题做题思路的分析...
  4. Forbidden You don't have permission to access / on this server PHP
  5. springmvc知识点
  6. 【机器学习】机器学习从零到掌握之十三 -- 教你理解Logistics回归之梯度上升算法
  7. 存储过程和存储函数和触发器示例
  8. ASP.Net MVC-Web API使用Entity Framework时遇到Loop Reference
  9. TortoiseSVN打分支、合并分支、切换分支
  10. http转socks软件SOCKS2HTTP的使用
  11. matlab h系统控制器,Matlab的H_inf鲁棒控制器的设计.pdf
  12. 混合 html5蓝牙打印小票怎么排版,蓝牙打印机打印小票项目版
  13. karaf_未来是Apache Karaf上的微服务架构
  14. 解决pip装包报错ERROR: Cannot unistall ‘llvmlite‘. It is a distutils installed project and thus we cannot..
  15. Android开发的经典入门教材和学习…
  16. 数据与模型混合驱动的区域综合能源系统双层优化调度决策方法——阅读理解
  17. uniapp用户界面模板示例
  18. QTabelWidget表格的插入、删除、更新、动态滑动条以及配合QFile进行表格内容的长期存储
  19. ceph存储 scsi设备驱动体系架构
  20. 高分子PEG分子量从1000-40000不等,DSPE-PEG9-Mal

热门文章

  1. 黄帝内经.素问.脉要精微论篇(17)
  2. 在日软件工程师的远虑近忧
  3. 代码之谜(五)- 浮点数(谁偷了你的精度?)
  4. 小姐姐手机被偷后发朋友圈,结果…
  5. matlab求fft频谱峰值程序,用FFT对信号作频谱分析Matlab程序
  6. PE+windows系统+苹果网站整理
  7. css中aspect,CSS属性之aspect-ratio
  8. echarts柱形图X轴Y轴相关配置
  9. 电脑重启桌面 计算机图标消失,电脑重启后计算机图标不见了怎么办
  10. IDEA中Python使用url时报错:Traceback (most recent call last)