爬取思路:

url从网页上把代码搞下来
bytes decode ---> utf-8 网页内容就是我的待匹配的字符串
ret = re.findall(正则,待匹配的字符串), ret 是所有匹配到的内容组成的列表

  1. import re
  2. import json
  3. from urllib.request import urlopen
  4.  
  5. # (1)re.compile——爬取到文件中
  6.  
  7. def getPage(url):
  8. response = urlopen(url)
  9. return response.read().decode('utf-8')
  10.  
  11. def parsePage(s):
  12. com = re.compile(
  13. '<div class="item">.*?<div class="pic">.*?<em .*?>(?P<id>\d+).*?<span class="title">(?P<title>.*?)</span>'
  14. '.*?<span class="rating_num" .*?>(?P<rating_num>.*?)</span>.*?<span>(?P<comment_num>.*?)评价</span>',re.S
  15. )
  16. ret = com.finditer(s)
  17. for i in ret:
  18. yield {
  19. "id":i.group("id"),
  20. "title":i.group("title"),
  21. "rating_num":i.group("rating_num"),
  22. "comment_num":i.group("comment_num"),
  23. }
  24.  
  25. def main(num):
  26. url = 'https://movie.douban.com/top250?start=%s&filter=' % num
  27. response_html = getPage(url)
  28. ret = parsePage(response_html)
  29. print(ret)
  30. f = open("movie_info","a",encoding="utf-8")
  31.  
  32. for obj in ret:
  33. print(obj)
  34. data = str(obj)
  35. f.write(data + "\n")
  36. f.close()
  37.  
  38. count = 0
  39. for i in range(10): # 10页
  40. main(count)
  41. count += 25
  1.  
  1. import re
  2. import json
  3. from urllib.request import urlopen
  1. # (2)re.findall——打印输出
  2.  
  3. import re
  4. import json
  5. from urllib.request import urlopen
  6.  
  7. def getPage(url):
  8. response = urlopen(url)
  9. return response.read().decode('utf-8')
  10.  
  11. def parsePage(s):
  12. ret = re.findall( '<div class="item">.*?<div class="pic">.*?<em .*?>(?P<id>\d+).*?<span class="title">(?P<title>.*?)</span>'
  13. '.*?<span class="rating_num" .*?>(?P<rating_num>.*?)</span>.*?<span>(?P<comment_num>.*?)评价</span>',s,re.S)
  14. return ret
  15.  
  16. def main(num):
  17. url = 'https://movie.douban.com/top250?start=%s&filter=' % num
  18. response_html = getPage(url)
  19. ret = parsePage(response_html)
  20. print(ret)
  21.  
  22. count = 0
  23. for i in range(10): #10页
  24. main(count)
  25. count += 25

正则表达式详解:

  1.  

简单的爬虫例子——爬取豆瓣Top250的电影的排名、名字、评分、评论数的更多相关文章

  1. 爬虫之爬取豆瓣top250电影排行榜及爬取斗图啦表情包解读及爬虫知识点补充

    今日内容概要 如何将爬取的数据直接导入Excel表格 #如何通过Python代码操作Excel表格 #前戏 import requests import time from openpyxl impo ...

  2. python爬取豆瓣top250的电影数据并存入excle

    爬取网址: https://movie.douban.com/top250 一:爬取思路(新手可以看一下) : 1:定义两个函数,一个get_page函数爬取数据,一个save函数保存数据,mian中 ...

  3. 零基础爬虫----python爬取豆瓣电影top250的信息(转)

    今天利用xpath写了一个小爬虫,比较适合一些爬虫新手来学习.话不多说,开始今天的正题,我会利用一个案例来介绍下xpath如何对网页进行解析的,以及如何对信息进行提取的. python环境:pytho ...

  4. 基础爬虫,谁学谁会,用requests、正则表达式爬取豆瓣Top250电影数据!

    爬取豆瓣Top250电影的评分.海报.影评等数据!   本项目是爬虫中最基础的,最简单的一例: 后面会有利用爬虫框架来完成更高级.自动化的爬虫程序.   此项目过程是运用requests请求库来获取h ...

  5. 一起学爬虫——通过爬取豆瓣电影top250学习requests库的使用

    学习一门技术最快的方式是做项目,在做项目的过程中对相关的技术查漏补缺. 本文通过爬取豆瓣top250电影学习python requests的使用. 1.准备工作 在pycharm中安装request库 ...

  6. 第一个nodejs爬虫:爬取豆瓣电影图片

    第一个nodejs爬虫:爬取豆瓣电影图片存入本地: 首先在命令行下 npm install request cheerio express -save; 代码: var http = require( ...

  7. requests爬取豆瓣top250电影信息

    ''' 1.爬取豆瓣top250电影信息 - 第一页: https://movie.douban.com/top250?start=0&filter= - 第二页: https://movie ...

  8. Python爬虫实例:爬取豆瓣Top250

    入门第一个爬虫一般都是爬这个,实在是太简单.用了 requests 和 bs4 库. 1.检查网页元素,提取所需要的信息并保存.这个用 bs4 就可以,前面的文章中已经有详细的用法阐述. 2.找到下一 ...

  9. Python-爬虫实战 简单爬取豆瓣top250电影保存到本地

    爬虫原理 发送数据 获取数据 解析数据 保存数据 requests请求库 res = requests.get(url="目标网站地址") 获取二进制流方法:res.content ...

随机推荐

  1. 微信小程序 -- 数据请求

    微信小程序 -- 数据请求 微信小程序请求数据,并不是一个可以在url打开有数据就可以拿到数据那么简单 浏览器地址输入 可以获取参数的url 微信小程序中 代码展示 wxml <view> ...

  2. 关于display:grid layout

    .wrapper { display: grid; grid-template-columns: repeat(3, 1fr); grid-gap: 10px; grid-auto-rows: min ...

  3. [转]VirtualBox中的网络连接方式详解

    如果出现主机无法ping通虚拟机的情况,请首先确认虚拟机防火墙已关闭. 一.NAT模式 特点: 1.如果主机可以上网,虚拟机可以上网 2.虚拟机之间不能ping通 3.虚拟机可以ping通主机(此时p ...

  4. 获取URL中的链接(可中文也可英文)

    //既能获取中文url也能英文function getUrlParam(key) { // 获取参数 var url = window.location.search; // 正则筛选地址栏 var ...

  5. MySQL 5.6比较重要的参数,以及5.5到5.6默认值有过变化的参数

    新参数说明和设置,这里说下5.6比较重要的参数,以及5.5到5.6默认值有过变化的参数. MySQL Server参数: 1,optimizer_switch:优化器选项. Variable_name ...

  6. Android Studio NDK开发入门

    从Android Studio 1.3 Beta1开始,就支持了NDK,我目前使用的版本是1.5.首先强调几点. 1.必须安装NDK并配置好环境变量(和配置JDK环境变量如出一辙:新建NDK_HOME ...

  7. sublime text3的快捷键

    Ctrl + Shift + P    调出命令板(Command Palette) Ctrl + `    调出控制台 Ctrl + D    选择当前光标所在的词并高亮该词所有出现的位置,再次 C ...

  8. STL标准库-容器适配器

    技术在于交流.沟通,本文为博主原创文章转载请注明出处并保持作品的完整性 上一节介绍了仿函数适配器,这节主要介绍容器适配器和迭代器适配器的概念,其实容器适配器和迭代器其适配器就是封装了一些其他class ...

  9. anu - react

    import { options } from "./util"; import { Children } from "./Children"; import ...

  10. 使用Ant搭建Android开发环境入门

    使用Ant搭建Android开发环境入门   使用Ant搭建Android开发环境,建立android项目 配置Ant环境 下载Ant:http://ant.apache.org/bindownloa ...