对之前我的那个豆瓣的短评的爬虫,进行了一下架构性的改动.尽可能实现了模块的分离.但是总是感觉不完美.暂时也没心情折腾了. 同时也添加了多线程的实现.具体过程见下. 改动 独立出来的部分: MakeOpener MakeRes GetNum IOFile GetSoup main 将所有的代码都置于函数之中,显得干净了许多.(*^__^*) 嘻嘻-- 使用直接调用文件入口作为程序的起点 if __name__ == "__main__": main() 注意,这一句并不代表如果该if之前…
写在开头 豆瓣上有着大量的影视剧的评论,所以说,要是想要实现对广大人民群众的观点的分析,对一部片子的理解,综合来看大家的评论是很有必要的.而短评作为短小精干的快速评论入口,是值得一谈的. 所以先要实现对其的数据的爬取. 目前来看,基本内容是可以爬取的.最大的问题在于速度.后续考虑准备运用多线程的方式处理下.以及可以尝试其他提速的方法. 下面是这个程序的构思编写过程. 构思准备 爬取的思路,及反省与思考 盲目状态 最初,并不知道豆瓣对于未登陆用户的限制,盲目的爬取,看着评论文件,发现行数太少,也就…
原创技术公众号:bigsai,本文在1024发布,祝大家节日快乐,心想事成. @ 目录 前言 登录 爬取 储存 可视化分析 前言 在本人上的一门课中,老师对每个小组有个任务要求,介绍和完成一个小模块.工具知识的使用.然而我所在的组刚好遇到的是python爬虫的小课题. 心想这不是很简单嘛,搞啥呢?想着去搞新的时间精力可能不太够,索性自己就把豆瓣电影的评论(短评)搞一搞吧. 之前有写过哪吒那篇类似的,但今天这篇要写的像姨母般详细.本篇主要实现的是对任意一部电影短评(热门)的抓取以及可视化分析. 也…
在之前的文章中,我们获得了豆瓣爬取的短评内容,汇总到了一个文件中,但是,没有被利用起来的数据是没有意义的. 前文提到,有一篇微信推文的关于词云制作的一个实践记录,准备照此试验一下. 思路分析 读文件 利用with open() as...将文件读进来.这里需要注意文件内容的大小. 分词 由于获取的是大量的短评文字,而制作词云需要的是各种词语,有了词,才能谈词云,所以目前第一步需求的就是讲短评内容拆分成一个个的中文词汇. 这里就用到了我所听过的一个库jieba,可以将中文语句拆解成一个个的词汇.这…
一直想做个这样的爬虫:定制自己的种子,爬取想要的数据,做点力所能及的小分析.正好,这段时间宝宝出生,一边陪宝宝和宝妈,一边把自己做的这个豆瓣电影爬虫的数据采集部分跑起来.现在做一个概要的介绍和演示. 动机 采集豆瓣电影数据包括电影详情页数据和电影的短评数据. 电影详情页如下图所示 需要保存这些详情字段如导演.编剧.演员等还有图中右下方的标签. 短评页面如下图所示 需要保存的字段有短评所属的电影名称,每条评论的详细信息如评论人名称.评论内容等. 数据库设计 有了如上的需求,需要设计表,其实很简单,…
Python爬取豆瓣指定书籍的短评 #!/usr/bin/python # coding=utf-8 import re import sys import time import random import urllib import urllib2 import MySQLdb # 爬取豆瓣评论 class Douban: # 构造函数 def __init__(self, url, name): # 采集的地址 #self.url = 'https://book.douban.com/su…
<哪吒之魔童降世>这部国产动画巅峰之作,上映快一个月时间,票房口碑双丰收. 迄今已有超一亿人次观看,票房达到42.39亿元,超过复联4,跻身中国票房纪录第三名,仅次于<战狼2>和<流浪地球>. 去看豆瓣的评论,网友们对<哪吒>的喜爱溢于言表: 那么,网友评价哪吒这部动画用的最多的词是什么呢?不把这些短评都爬取下来,再做个词云分布,就能了解网友都说了啥了. 这次是用python登录并爬取豆瓣短评,并做词云分布,分别用到requests.xpath.lxml.j…
python爬虫之多线程.多进程 使用多进程.多线程编写爬虫的代码能有效的提高爬虫爬取目标网站的效率. 一.什么是进程和线程 引用廖雪峰的官方网站关于进程和线程的讲解: 进程:对于操作系统来说,一个任务就是一个进程(Process),比如打开一个浏览器就是启动一个浏览器进程,打开一个记事本就启动了一个记事本进程,打开两个记事本就启动了两个记事本进程,打开一个Word就启动了一个Word进程. 线程:有些进程还不止同时干一件事,比如Word,它可以同时进行打字.拼写检查.打印等事情.在一个进程内部…
作者:黄嘉锋 来源:https://www.jianshu.com/p/ea0b56e3bd86 草长莺飞,转眼间又到了三月"爬虫月".这时往往不少童鞋写论文苦于数据获取艰难,辗转走上爬虫之路:许多分析师做舆情监控或者竞品分析的时候,也常常使用到爬虫. 今天,本文将带领小伙伴们通过12行简单的Python代码,初窥爬虫的秘境. )    response = etree.HTML(requests.get(url).content.decode( ,):        name.app…
爬取过程在这里: Python爬取你好李焕英豆瓣短评并利用stylecloud制作更酷炫的词云图 本文基于前文爬取生成的douban.txt,基于SnowNLP做情感分析. 依赖库: 豆瓣镜像比较快: pip install snownlp -i http://pypi.douban.com/simple/ --trusted-host=pypi.douban.com/simple 初识SnowNLP: SnowNLP是一个常用的Python文本分析库,是受到TextBlob启发而发明的.由于当…
使用pandas保存豆瓣短评数据 Python爬虫(入门+进阶)     DC学院 本节课程的内容是介绍open函数和pandas两种保存已爬取的数据的方法,并通过实际例子使用pandas保存数据. 保存数据的方法: open函数保存 pandas包保存(本节课重点讲授) csv模块保存 numpy包保存 使用open函数保存数据 1. open函数用法 使用with open()新建对象 写入数据 import requests from lxml import etree   url = '…
使用Xpath解析豆瓣短评 Python爬虫(入门+进阶)     DC学院 本节课程主要介绍解析神器Xpath是什么.Xpath如何安装及使用,以及使用实际的例子讲解Xpath如何解析豆瓣短评的网页并获取数据. 解析神器Xpath Xpath的使用 实战环节 解析神器Xpath: 1. 什么是Xpath XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言. XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力.起初XPa…
Python主要是通过标准库threading包来实现多线程. 今天,互联网时代,所有的server您将收到大量请求. server要利用多线程的方式的优势来处理这些请求,为了改善网络port读写效率. Python它是一个网络server后台工作语言 (豆瓣网),所以多线程也就非常自然被Python语言支持. 多线程售票以及同步 我们使用Python来实现Linux多线程与同步文中的售票程序. 我们使用mutex (也就是Python中的Lock类对象) 来实现线程的同步: import th…
目标:使用Python爬取豆瓣电影并保存MongoDB数据库中 我们先来看一下通过浏览器的方式来筛选某些特定的电影: 我们把URL来复制出来分析分析: https://movie.douban.com/tag/#/?sort=T&range=0,10&tags=%E7%94%B5%E5%BD%B1,%E7%88%B1%E6%83%85,%E7%BE%8E%E5%9B%BD,%E9%BB%91%E5%B8%AE 有3个字段是非常重要的: 1.sort=T 2.range=0,10 3.tag…
一 threading模块介绍 multiprocess模块的完全模仿了threading模块的接口,二者在使用层面,有很大的相似性,因而不再详细介绍 官网链接:https://docs.python.org/3/library/threading.html?highlight=threading# 二 开启线程的两种方式 #方式一 from threading import Thread import time def sayhi(name): time.sleep(2) print('%s…
代码地址如下:http://www.demodashi.com/demo/13257.html 1. 需求说明 本项目基于Python爬虫,爬取豆瓣电影上关于复仇者联盟3的所有影评,并保存至本地文件.然后对影评进行分词分析,使用词云生成树人格鲁特的形象照片. 2. 代码实现 此部分主要解释Python爬虫部分及使用词云生成图像的代码 Python爬虫 首先获取需要爬取的网页地址,然后通过requests.get()方式去获取网页,代码如下: # 获取网页 def getHtml(url): tr…
python Cmd实例之网络爬虫应用 标签(空格分隔): python Cmd 爬虫 废话少说,直接上代码 # encoding=utf-8 import os import multiprocessing from cmd import Cmd import commands from mycrawler.dbUtil import DbUtil import signal # 下载监控 def run_download_watch(): os.system("gnome-terminal…
通过python正则表达式获取豆瓣top250的第一页的25个影片排名,影片名字,影片连接,导演,主演,上映日期,国家,剧情,评分,评价人数的内容 网页html内容: <ol class="grid_view"> <li> <div class="item"> <div class="pic"> <em class="">1</em> <a href…
使用python做最简单的爬虫 --之心 #第一种方法import urllib2 #将urllib2库引用进来response=urllib2.urlopen("http://www.baidu.com") #调用库中的方法,将请求回应封装到response对象中html=response.read() #调用response对象的read()方法,将回应字符串赋给hhtml变量print html #打印出来 #第二中方法import urllib2req=urllib2.Requ…
Python爬取豆瓣电影top250 下面以四种方法去解析数据,前面三种以插件库来解析,第四种以正则表达式去解析. xpath pyquery beaufifulsoup re 爬取信息:名称  评分 小评 结果显示 使用xpath解析数据 #python 使用xpath解析数据 #查询豆瓣top250电影 #获取信息:名称 评分 短语 #关于xpath语法:https://www.w3school.com.cn/xpath/xpath_syntax.asp from lxml import e…
主要是把项目从docker里面扒拉出来,但是扒拉完好像又没有什么用,放在docker里面运行多好. 源码下载下面主要记一下改动的地方吧. 配置:在database.py中改掉自己的数据库配置. 表结构,直接运行可以通过.代码见链接内容. 异步存储还是不会改. 文件名 把spider中的类名改成和文件名相同,好像不碍事. 代理 settings.py中找到 DOWNLOADER_MIDDLEWARES = { 'douban.middlewares.ProxyMiddleware': 543, }…
多进程和多线程 一.进程 1.1 进程的引入 现实生活中,有很多的场景中的事情是同时进行的,比如开车的时候 手和脚共同来驾驶汽车,再比如唱歌跳舞也是同时进行的:试想,如果把唱歌和跳舞这2件事情分开依次完成的话,估计就没有那么好的效果了(想一下场景:先唱歌,然后在跳舞,O(∩_∩)O哈哈~) 程序中 如下程序,来模拟"唱歌跳舞"这件事情 # 模拟唱歌,跳舞 from time import sleep def sing(): for i in range(3): print("…
爬虫项目介绍   本次爬虫项目将爬取豆瓣Top250电影的图片,其网址为:https://movie.douban.com/top250, 具体页面如下图所示:   本次爬虫项目将分别不使用多线程和使用多线程来完成,通过两者的对比,显示出多线程在爬虫项目中的巨大优势.本文所使用的多线程用到了concurrent.futures模块,该模块是Python中最广为使用的并发库,它可以非常方便地将任务并行化.在concurrent.futures模块中,共有两种并发模块,分别如下: 多线程模式:Thr…
最近学到数据可视化到了词云图,正好学到爬虫,各种爬网站 [实验名称] 爬取豆瓣电影<千与千寻>的评论并生成词云 1. 利用爬虫获得电影评论的文本数据 2. 处理文本数据生成词云图 第一步,准备数据 需要登录豆瓣网站才能够获得短评文本数据https://movie.douban.com/subject/1291561/comments 首先获取cookies,使用爬虫强大的firefox浏览器 将cookies数据复制到cookies.txt文件当中备用, 2.第二步,编写爬虫代码 #codin…
from bs4 import BeautifulSoup import openpyxl import re import urllib.request import urllib.error # 访问url def ask_url(url): # 伪装浏览器 head = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) \ AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.…
今天,又算是浪费了一天了.python爬虫,之前写过简单的版本,那个时候还不懂原理,现在算是收尾吧. 以前对网页爬虫不了解,感觉非常神奇,但是解开这面面纱,似乎里面的原理并不是很难掌握.首先,明白一个概念,HTTP协议,为什么叫超文本协议.超文本的概念,是所有的数据几乎都使用文本模式传输,包括文字,图像等,然后在一个网页中,需要做的是解析这些字符数据,并还原成原始的文件. 爬虫的概念,是以一个网页作为起点,从中发现更多的链接和数据信息,并依此以树形展开,可以想象成为一颗树,对每一个网页,需要按照…
1.  爬虫设计的技术 1)数据获取,通过http获取网站的数据,如urllib,urllib2,requests等模块: 2)数据提取,将web站点所获取的数据进行处理,获取所需要的数据,常使用的技术有:正则re,BeautifulSoup,xpath: 3)数据存储,将获取的数据有效的存储,常见的存储方式包括:文件file,csv文件,Excel,MongoDB数据库,MySQL数据库 2. 环境信息 1)python2.7 2)mongo2.6 3)使用模块包括re,requests,lx…
背景: 我们知道多线程要比多进程效率更高,因为线程存在于进程之内,打开一个进程的话,首先需要开辟内存空间,占用内存空间比线程大.这样想也不怪,比如一个进程用10MB,开10个进程就得100MB的内存空间.但是我们开线程的话,只需要开通一个进程,在进程里面再开10个线程,这样的话内存空间只需要10MB就开了,这么想也是对的,但是.但是. GIL: 又名全局解释器锁,python在设计当初(那个年代哪来的多核,电脑都没来普及),也是python的一个设计思想,为了数据安全,怎么个为数据安全考虑呢(一…
今天利用xpath写了一个小爬虫,比较适合一些爬虫新手来学习.话不多说,开始今天的正题,我会利用一个案例来介绍下xpath如何对网页进行解析的,以及如何对信息进行提取的. python环境:python3.5 先看看网页的样子 豆瓣电影网站链接 我们下面将要对电影的名字.链接.评分.评价人数和一句话描述这些信息进行提取1.检查并复制电影名字的xPath信息 电影<肖申克的救赎>的xPath信息如下://*[@id=”content”]/div/div[1]/ol/li[1]/div/div[2…
  近段时间,笔者发现一个神奇的网站:http://www.allitebooks.com/ ,该网站提供了大量免费的编程方面的电子书,是技术爱好者们的福音.其页面如下:   那么我们是否可以通过Python来制作爬虫来帮助我们实现自动下载这些电子书呢?答案是yes.   笔者在空闲时间写了一个爬虫,主要利用urllib.request.urlretrieve()函数和多线程来下载这些电子书.   首先呢,笔者的想法是先将这些电子书的下载链接网址储存到本地的txt文件中,便于永久使用.其Pyth…