豆瓣爬虫小记(lowB版)
爬虫小记
看了python正则知识之后,可以利用正则知识学学网络爬虫。
需求分析
按照自己平时浏览的网页,留意下哪个网页的信息对自己有价值,分析要爬取哪些网页信息。这里我先爬取简单的静态网页,豆瓣网经典电影排名及详细信息。
爬取目标信息:排名,电影名,导演,评分,评价人数
具体步骤
设计下载html网页的函数
设计正则规则
存储爬取信息
#!/usr/bin/env python
#coding:utf8
import requests
import re
import json
def download():
response = requests.get(url.format(page=p*25))
res = response.text
return res
def spider_dpuban():
get_html = download()
obj = re.compile('<div class="item">.*?<em class="">(?P<id>.*?)</em>.*?<span class="title">(?P<title>.*?)</span>'
'.*?<p class="">.*?导演:(?P<director>.*?) .*?</p>.*?<span class="rating_num".*?>(?P<num>.*?)</span>.*?<span>(?P<comment>.*?)人评价</span>',
re.S)
res = obj.finditer(get_html)
title = ('排名','电影名','导演','评分','评价人')
with open('douban', 'a', encoding='utf-8') as f:
for i in res:
dic = dict(zip(title, i.group('id', 'title', 'director', 'num', 'comment')))
wr = json.dumps(dic,ensure_ascii=False)
f.write(wr + '\n')
url = 'https://movie.douban.com/top250?start={page}&filter='
for p in range(10):
spider_dpuban()
with open('douban', 'r', encoding='utf-8') as f:
for i in f:
i = json.loads(i)
print(i)
心得
回头来看,这个程序还是比较挫,扩展性不好,结构也一般。不过最终看到结果也还是挺兴奋,只有等以后有时间慢慢完善了。先记录下来吧。

豆瓣爬虫小记(lowB版)的更多相关文章
- spider-web 是爬虫的网页版,使用xml配置
spider-web 是爬虫的网页版,使用xml配置,支持大部分页面的爬取,支持爬取内容的保存.下载等. 其中配置文件格式为: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 ...
- 【python】理想论坛爬虫长贴版1.00
理想论坛有些长贴,针对这些长贴做统计可以知道某ID什么时段更活跃. 爬虫代码为: #---------------------------------------------------------- ...
- 【pyhon】理想论坛爬虫1.05版,将读取和写DB分离成两个文件
下午再接再厉仿照Nodejs版的理想帖子爬虫把Python版的也改造了下,但美中不足的是完成任务的线程数量似乎停滞在100个左右,让人郁闷.原因还待查. 先把代码贴出来吧,也算个阶段性成果. 爬虫代码 ...
- nodejs豆瓣爬虫
从零开始nodejs系列文章,将介绍如何利Javascript做为服务端脚本,通过Nodejs框架web开发.Nodejs框架是基于V8的引擎,是目前速度最快的Javascript引擎.chrome浏 ...
- 【收藏】收集的各种Python爬虫、暗网爬虫、豆瓣爬虫、抖音爬虫 Github1万+星
收集的各种Python爬虫.暗网爬虫.豆瓣爬虫 Github 1万+星 磁力搜索网站2020/01/07更新 https://www.cnblogs.com/cilisousuo/p/1209954 ...
- 豆瓣爬虫Scrapy“抄袭”改写
主要是把项目从docker里面扒拉出来,但是扒拉完好像又没有什么用,放在docker里面运行多好. 源码下载下面主要记一下改动的地方吧. 配置:在database.py中改掉自己的数据库配置. 表结构 ...
- 豆瓣爬虫——通过json接口获取数据
最近在复习resqusts 爬虫模块,就重新写了一个豆瓣爬虫,这个网页从HTML 源码上来看是没有任何我想要的信息的,如下图所示: 这是网页视图,我在源码中查找影片信息,没有任何信息,如图: 由此我判 ...
- 豆瓣top250(go版以及python版)
最近学习go,就找了一个例子练习[go语言爬虫]go语言爬取豆瓣电影top250,思路大概就是获取网页,然后根据页面元素,用正则表达式匹配电影名称.评分.评论人数.原文有个地方需要修改下patte ...
- Shell终端收听音乐--豆瓣FM命令行版
douban.fm Terminal-based douban.fm inspired by douban.fm.该版本版基于Python2.* 安装Python2.* pacman -S pytho ...
随机推荐
- deeplearning.ai 改善深层神经网络 week1 深度学习的实用层面 听课笔记
1. 应用机器学习是高度依赖迭代尝试的,不要指望一蹴而就,必须不断调参数看结果,根据结果再继续调参数. 2. 数据集分成训练集(training set).验证集(validation/develop ...
- 【Java学习笔记之十七】Java中普通代码块,构造代码块,静态代码块区别及代码示例分析
//执行顺序:(优先级从高到低.)静态代码块>mian方法>构造代码块>构造方法. 其中静态代码块只执行一次.构造代码块在每次创建对象是都会执行. 1 普通代码块 //普通代码块:在 ...
- hadoop2.6.0集群搭建
p.MsoNormal { margin: 0pt; margin-bottom: .0001pt; text-align: justify; font-family: Calibri; font-s ...
- 【LeetCode】476. Number Complement (java实现)
原题链接 https://leetcode.com/problems/number-complement/ 原题 Given a positive integer, output its comple ...
- [国嵌攻略][070][GDB调试程序]
GDB是GNU发布的一款功能强大的调试工具.GDB主要完成下面三个方面的功能: 1.启动被调试的程序. 2.让被调试的程序在指定的位置停住. 3.当程序被停住时,可以检测程序状态. GDB使用流程 1 ...
- 从零开始学习前端开发 — 16、CSS3圆角与阴影
一.css3圆角: border-radius:数值+单位; 1.设置一个值:border-radius:20px; 四个方向圆角都为20px(水平半径和垂直半径相等) 2.设置两个值 border- ...
- 【自制工具类】struts返回json数据包装格式类
自己写的一个给struts返回的json数据包装格式类,不喜勿喷,原创,需在项目中引入com.alibaba.fastjson的jar包 先看下效果(这里没有使用msg,有兴趣的往下看): 上demo ...
- echarts使用总结
项目中需要实现数据可视化,在前辈的推荐之下,最终选取了echarts来实现,在此关于echarts的使用进行总结,最终代码分享至我的github. 关于echarts echarts是百度推出的,使用 ...
- CCF系列之有趣的数(201312-4)
题目链接: http://115.28.138.223:81/view.page?opid=4 试题名称: 有趣的数 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 我们把一个 ...
- Qt出现堆溢出(Error Code -1073741823)
症状 在使用Debug模式时,程序可以正常启动,但是切换到Release模式,程序报错,错误码-1073741823 原因 程序中使用了过多的new.比如: QActionGroup *mProtoc ...