欢迎点击「算法与编程之美」↑关注我们!

本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章。

欢迎加入团队圈子!与作者面对面!直接点击!

前言:

在掌握一些基础的爬虫知识后,就可以尝试做一些简单的爬虫来练一练手。今天要做的是利用xpath库来进行简单的数据的爬取。我们爬取的目标是电影的名字、导演和演员的信息、评分和url地址。

准备环境:Pycharm、python3、爬虫库request、xpath模块、lxml模块

第一步:分析url ,理清思路

先搜索豆瓣电影top250,打开网站可以发现要爬取的数据不止存在单独的一页,而是存在十页当中,这时应该怎么做呢?

首先观察:

第一页的

url:https://movie.douban.com/top250?start=0&filter=

第二页的

url:https://movie.douban.com/top250?start=25&filter=

第三页的

url:https://movie.douban.com/top250?start=50&filter=

可以得出一个结论每页的url是有规律的,start后面的数字等于页数减一乘以五。这样就可以用一个循环来爬取。

图1.1

再来就是通常的头部信息,第一步如下图所示:

图1.2

第二步:发送请求,利用xpath处理数据

Xpath可以通过节点来快速获取需要的信息,并把它提取出来。先打开浏览器的开发者工具。发现所有的电影数据都存放在div[@class="info"]的标签里,通过一级一级的获取,就可以得到想要的信息。可以直接来利用开发者工具的copy,来copy xpath的路径,但一般不推荐,因为很可能出错。

图2.1

如图所示:

图2.2

第三步:保存数据

我们可以用csv来保存数据

图3.1

代码如下:

import requests
 import lxml.html
 import csv
 etree = lxml.html.etree
 temp = r'C:\Users\86177\Desktop'+'\\'+'doubanmovie'
 with open(temp + '.csv', 'w') as f:
     csvwriter = csv.writer(f, dialect='excel')
     csvwriter.writerow(['title','info','average','link'])
 header ={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)  AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.7 Safari/537.36'}
 for n in range(11):
     url = 'https://movie.douban.com/top250?start=%s&filter='.format((n-1)*5)
     response = requests.get(url,headers=header)
     response.encoding = "utf-8"
     html1 = etree.HTML(response.text)
     h = html1.xpath('//div[@class="info"]')
     for sech in h:
         i = sech
         title = i.xpath('div[@class="hd"]/a/span[@class="title"]/text()')
         othertitle = i.xpath('div[@class="hd"]/a/span[@class="other"]/text()')
         info = i.xpath('div[@class="bd"]/p/text()')
         average = i.xpath('div[@class="bd"]/div[@class="star"]/span[@class="rating_num"]/text()')
         link = i.xpath('div[@class="hd"]/a/@href')
 
         for a, b, c, d in zip(title,  info, average, link):
             print(a, b, c, d)
 
             with open(temp + '.csv', 'w')  as f:
                 csvwriter =  csv.writer(f, dialect='excel')
                 csvwriter.writerow([a,  b, c, d])

总结:

这次爬取豆瓣的反爬虫机制较少,很适合一些学习爬虫知识的小白来练一练手。提高爬虫实战的能力。

END

编  辑   |   王楠岚

责  编   |   王   曦

 where2go 团队


   

微信号:算法与编程之美

长按识别二维码关注我们!

温馨提示:点击页面右下角“写留言”发表评论,期待您的参与!期待您的转发!

Python|简单爬取豆瓣网电影信息相关推荐

  1. python爬取豆瓣电影信息_Python|简单爬取豆瓣网电影信息

    前言: 在掌握一些基础的爬虫知识后,就可以尝试做一些简单的爬虫来练一练手.今天要做的是利用xpath库来进行简单的数据的爬取.我们爬取的目标是电影的名字.导演和演员的信息.评分和url地址. 准备环境 ...

  2. 003.[python学习] 简单抓取豆瓣网电影信息程序

    003.[python学习] 简单抓取豆瓣网电影信息程序 声明:本程序仅用于学习爬网页数据,不可用于其它用途. 本程序仍有很多不足之处,请读者不吝赐教. 依赖:本程序依赖BeautifulSoup4和 ...

  3. [python爬虫] BeautifulSoup和Selenium对比爬取豆瓣Top250电影信息

    这篇文章主要对比BeautifulSoup和Selenium爬取豆瓣Top250电影信息,两种方法从本质上都是一样的,都是通过分析网页的DOM树结构进行元素定位,再定向爬取具体的电影信息,通过代码的对 ...

  4. python采用requests+bs4爬取豆瓣top250电影信息

    爬取豆瓣top250电影说明 (链接:https://movie.douban.com/top250,可爬取一页或者多页(输出电影的正标题(肖申克的救赎),副标题( The Shawshank Red ...

  5. scrapy爬取豆瓣所有电影信息(新手入门超详细版)

    本次小实验目标就是爬取豆瓣所有的电影,我们以豆瓣的分类页(https://movie.douban.com/tag/#/)作为start_urls,首要任务就是分析当前页面是否为动态加载,何为js动态 ...

  6. python爬虫爬取豆瓣top250电影影评

    信息系统课程项目,小组准备做一个电影推荐系统,自己选了觉得很有趣的资源模块,需要获取电影的评价资源等信息.花了大约一周看Web Scraping with Python这本书,对爬虫有了大体但是初略的 ...

  7. python爬虫——爬取豆瓣TOP250电影

    相信很多朋友在看一部电影的时候喜欢先去豆瓣找一下网友对该片的评价.豆瓣作为国内最权威的电影评分网站,虽然有不少水军和精日精美分子,但是TOP250的电影还是不错的,值得一看. 爬取目标 本文将爬取豆瓣 ...

  8. python 爬虫 爬取当当网图书信息

    初次系统的学习python,在学习完基本语法后,对爬虫进行学习,现在对当当网进行爬取,爬取了基本图书信息,包括图书名.作者等 import requests from time import slee ...

  9. [Python]学以致用爬取豆瓣小组租房信息

    因为马上毕业面临着找房子的需求,在知乎上搜索了一下,发现豆瓣小组推荐的比较多.但是豆瓣小组得一个一个看不方便,想起了昨天学的爬虫,正好可以学以致用,开心之余发了条朋友圈,没想到有相同需求的朋友还不少, ...

最新文章

  1. xpath技术,用在dom4j中
  2. python笔记之Cmd模块
  3. Python编程 - 不调用相关choose库函数,“众数“挑选器、随机挑选器 的源码编程实现
  4. 【转】 Android xml中 @和?区别,style和attr小结
  5. MonkeyTest脚本
  6. php 怎么设置cookie,php中如何设置cookie
  7. 服务器宕机维护公告,服务器“宕机”的诊断方法
  8. 温度对免疫代谢调节和癌症进展的影响
  9. 宝塔面板切换PHP版本
  10. 一文带你了解SpringMVC框架的基本使用(上)
  11. 高效程序员的7个技能
  12. mfc切换office样式_VS2015下使用MFC操作Office(Word)
  13. 游戏《天黑请闭眼OL》全套源代码
  14. Java零基础学习全套视频笔记
  15. 顺丰科技2018校园招聘在线笔试题
  16. 电机学——磁感应强度和磁场强度区别
  17. iOS开发UI篇—以微博界面为例使用纯代码自定义cell程序编码全过程(三·完结)...
  18. 过期九年的牛奶你为什么还要喝?
  19. 《无人驾驶》—— 读书总结
  20. Acwing第 63 场周赛【未完结】

热门文章

  1. 【Vue】基础系列(五)列表渲染v-for | key的原理 | 数组 | 对象 | 删除替换 | 过滤与排序
  2. android三星拍照不够,三星拍照不行还说安卓机皇是三星,华为到底差哪儿了?...
  3. 与计算机硬件直接打交道的是,第三章计算机软件.ppt
  4. 异步fifo的空满判断原理
  5. LOL、王者荣耀入选2018亚运会,打游戏也能赢金牌
  6. oracle根据主键分区,oracle分区表和主键关系
  7. 基于CSerialPort修改类的串口调试助手源代码(支持中文、自动保存等)
  8. Jmeter保存报错Couldn‘t save test plan to file
  9. 在centos8上手动安装docker,避免安装moby
  10. log4j-maven仓库地址