抓取(scraping)---爬虫从网页中抽取一些数据用以实现某些用途. 三种抽取网页数据的方法:正则表达式.Beautiful Soup和lxml. 2.1 分析网页 通过浏览器自带选项,查看网页源代码 通过Firebug Lite扩展(http://getfirebug.com/firebuglite),分析网页信息.Firefox浏览器可以安装完整版的Firebug. 2.2 三种网页抓取方法 2.2.1 正则表达式 Python正则表达式(2.x):https://docs.python…
Wiki - Web crawler 百度百科 - 网络爬虫 1.1 网络爬虫何时使用 用于快速自动地获取网络信息,避免重复性的手工操作. 1.2 网络爬虫是否合法 网络爬虫目前人处于早期的蛮荒阶段,尚未针对"允许那些行为"取得广泛共识,是否合法要根据当地的法律法规来具体区分. 从目前的实践来看: 如果抓取数据的行为用于个人使用,这不存在问题: 如果数据用于转载,那么原创数据(比如,意见和评论)通常会受到版权限制,而现实生活中的真实数据(比如,营业地址.电话清单)一般不受版权限制. 为…
今天尝试使用python写一个网络爬虫代码,主要是想訪问某个站点,从中选取感兴趣的信息,并将信息依照一定的格式保存早Excel中. 此代码中主要使用到了python的以下几个功能,因为对python不熟悉,把代码也粘贴在以下. 1, 使用url打开站点网页 import urllib2 data = urllib2.urlopen(string_full_link).read().decode('utf8') print data 2,使用正則表達式匹配 import re #一般的英文匹配 r…
目录 # 1. 为什么要爬虫? 2. 什么是爬虫? 3. 爬虫如何抓取网页数据? # 4. Python爬虫的优势? 5. 学习路线 6. 爬虫的分类 6.1 通用爬虫: 6.2 聚焦爬虫: # 1. 为什么要爬虫? "大数据时代",数据获取的方式: 大型企业公司有海量用户,需要收集数据来提升产品体验 [百度指数(搜索),阿里指数(网购),腾讯数据(社交)] 数据管理咨询公司: 通过数据团队专门提供大量数据,通过市场调研,问卷调查等 政府/机构提供的公开数据 中华人民共和国统计局 Wo…
尝试着用3台虚拟机搭建了伪分布式系统,完整的搭建步骤等熟悉了整个分布式框架之后再写,今天写一下用python写wordcount程序(MapReduce任务)的具体步骤. MapReduce任务以来HDFS存储和Yarn资源调度,所以执行MapReduce之前要先启动HDFS和Yarn.我们都知道MapReduce分Map阶段和Reduce阶段,这就需要我们 自己写Map阶段的处理方法和Reduce阶段的处理方法. MapReduce也支持除Java之外的其他语言,但要依赖流处理包(hadoop…
一,观测网络流量. 观测网络流量的行为叫做嗅探或数据包分析. 1,嗅探硬件. 从iOS模拟器捕获数据包不需要做特别的硬件或网络配置.如果需要捕获这些数据包,那么可以使用嗅探软件来监听回送设备或是用于连接网络的接口. 2,嗅探软件. OS X自带命令行数据包嗅探器topdump,它是OS X中大多数其他嗅探器的根基. 1)使用tcpdump进行捕获. 2)使用Wireshark进行捕获. 二,操作网络流量 1,配置Charles 2,HTTP断点. 3,重写规则. 三,模拟实现的网络状况. 网络数…
原创技术公众号:bigsai,本文在1024发布,祝大家节日快乐,心想事成. @ 目录 前言 登录 爬取 储存 可视化分析 前言 在本人上的一门课中,老师对每个小组有个任务要求,介绍和完成一个小模块.工具知识的使用.然而我所在的组刚好遇到的是python爬虫的小课题. 心想这不是很简单嘛,搞啥呢?想着去搞新的时间精力可能不太够,索性自己就把豆瓣电影的评论(短评)搞一搞吧. 之前有写过哪吒那篇类似的,但今天这篇要写的像姨母般详细.本篇主要实现的是对任意一部电影短评(热门)的抓取以及可视化分析. 也…
虽然看过一些Java 8新特性的资料,但是平时很少用到,时间长了就忘了,正好借着Java 9的发布,来总结下一些Java 8中的新特性. 接口中的默认方法和静态方法 先考虑一个问题,如何向Java中的集合库中增加方法?例如在Java 8中向Collection接口中添加了一个forEach方法. 如果在Java 8之前,对于接口来说,其中的方法必须都为抽象方法,也就是说接口中不允许有接口的实现,那么就需要对每个实现Collection接口的类都需要实现一个forEach方法. 但这就会造成在给接…
10.1 从文件中读取数据  10.1.1 读取整个文件 with open(~) as object: contents=object.read() with open('C:/Users/jou/Desktop/input.txt') as file_object: contents=file_object.read() print(contents.rstrip())   10.1.2 文件路径 #文件路径读取方式1 filepath='C:/Users/jou/Desktop/input…
#!/usr/bin/env python# -*- coding: utf-8 -*- class student: def __init__(self, name_list): self.student_name_list = name_list def __getitem__(self, item): return self.student_name_list[item] stu = student(['tom', 'bob', 'jane', ])stu = stu[:2]l = len…
ex46中,创建自己的python,  当你激活环境时 .\.venvs\lpthw\ Scripts\activate 会报一个错误 此时需要以管理员身份运行PowerShell,(当前的PS不用关,重新开一个PS,方法是开始菜单里搜索PS右键以管理员身份运行) 然后输入命令 set-executionpolicy remotesigned 选择Y.现在再回到刚才的PS窗口, 应该可以了…
11.1 测试函数 要学习测试,得有要测试的代码.下面是一个简单的函数,它接受名和姓并返回整洁的姓名: def get_formatted_name(first, last): """Generate a neatly formatted full name.""" full_name = first + ' ' + last return full_name.title() 为核实get_formatted_name() 像期望的那样工作,我们…
9.1 创建和使用类 面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想. OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数. 把计算机程序视为一组对象的集合,而每个对象都可以接收其他对象发过来的消息,并处理这些消息,计算机程序的执行就是一系列消息在各个对象之间传递. 编写类时,你定义一大类对象都有的通用行为. 基于类创建对象 时,每个对象都自动具备这种通用行为,然后可根据需要赋予每个对象独特的个性. 根据类来创建对象被称为实…
8.1 定义函数 def greet_user(): # def 来告诉Python你要定义一个函数.这是函数定义 """Hello World""" # 文档字符串 (docstring)Python使用它们来生成有关程序中函数的文档. print("Hello!") greet_user() # 函数调用   8.1.1 向函数传递信息 def greet_user(username): """…
7.1 函数input()的工作原理 函数input() 让程序暂停运行,等待用户输入一些文本.获取用户输入后,Python将其存储在一个变量中,以方便你使用. message = input("Tell me something, and I will repeat it back to you: ") print(message) Tell me something, and I will repeat it back to you: hello world hello world…
6.1 一个简单的字典 alien_0 = {'color': 'green', 'points': 5} print(alien_0['color']) print(alien_0['points']) 6.2 使用字典 字典 是一系列键—值对 .每个键 都与一个值相关联,你可以使用键来访问与之相关联的值. 与键相关联的值可以是数字.字符串.列表乃至字典.事实上,可将任何Python对象用作字典中的值. 在Python中,字典用放在花括号 {}  中的一系列键—值对表示 键和值之间用冒号分隔,…
5.1 一个简单示例 cars = ['audi', 'bmw', 'subaru', 'toyota'] for car in cars: if car == 'bmw': print(car.upper()) else: print(car.title()) Audi BMW Subaru Toyota 5.2 条件测试 每条if 语句的核心都是一个值为True 或False 的表达式,这种表达式被称为条件测试 .   5.2.1 检查是否相等 相等运算符 两个等号(== )  5.2.2…
4.1 遍历整个列表   4.1.1 深入地研究循环   4.1.2 在for循环中执行更多的操作   4.1.3 在for循环结束后执行一些操作  例 magicians = ['alice', 'david', 'carolina'] for magician in magicians: print(magician.title() + ", that was a great trick!") print("I can't wait to see your next tr…
3.1 列表是什么 列表 由一系列按特定顺序排列的元素组成. 在Python中,用方括号([] )来表示列表,并用逗号来分隔其中的元素. 3.1.1 访问列表元素 指出列表的名称,再指出元素的索引   3.1.2 索引从0而不是1开始 Python为访问最后一个列表元素提供了一种特殊语法.通过将索引指定为-X ,可让Python从后面返回第X个列表元素:   3.1.3 使用列表中的各个值 可像使用其他变量一样使用列表中的各个值.例如,你可以使用拼接根据列表中的值来创建消息. 例 bicycle…
做了大半年RPA了,用的工具是Kapow. 工作没有那么忙,不想就这么荒废着,想学点什么.就Python吧. 为期三个月,希望能坚持下来. 2.1 变量的命名和使用 变量名只能包含字母.数字和下划线. 变量名不能包含空格,但可使用下划线来分隔其中的单词. 不要将Python关键字和函数名用作变量名 变量名应既简短又具有描述性 慎用小写字母l和大写字母O,因为它们可能被人错看成数字1和0 2.2 使用变量时避免命名错误 你不小心错误地拼写了变量名时,Python解释器提供的traceback 2.…
#导入socket包 import socket #使用socket.socket创建socket连接 #AF_INET表示通信类型,与IPv4对应 #SOCK_STREAM对应TCP通信 print('creating socket...') s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) print('done') print('looking up port number..') port=socket.getservbyname(…
打开py的IDLE >>>import urllib.request >>>a=urllib.request.urlopen("http://www.baidu.com") >>>html=a.read().decode("utf-8") >>>print(html) 结果:…
import re import urllib def getHtml(url): page=urllib.urlopen(url) html=page.read() return html def getpic(html): s=r'src="(.*?\.jpg)" pic_ext' reg=re.compile(s) #这句可有可无 piclist=re.findall(reg,html) x=0 for imgurl in piclist: urllib.urlretrieve(…
1. Node的官方网站: http://nodejs.org 2. Node的缘起: Ryan Dahl 打算设计一个高性能的Web服务器. Ryan Dahl 认为设计高性能Web服务器的要点在于: (1)事件驱动 (2)非阻塞I/O (what? && why?) Ryan Dahl 选择使用JavaScript作为该服务器的实现语言,起名为Node. *为什么是JavaScript? (1)高性能 (2)符合事件驱动 (3)没有历史包袱 3. Node的特点 (1)保留前端浏览器J…
一.数据--行为转变     很长的时间,典型的分析方法或多或少是以下两种,第一,收集需求并做一些分析,找出有关实体 (例如,客户. 订单. 产品) 和进程来实现. 第二,手持这种理解你尝试推断一个物理 (和主要关系) 的数据模型,可以支持您确保流程数据模型是关系一致 (主键约束. 归一化. 索引),然后开始构建软件组件对识别的最相关的业务实体的表     你也可以依靠数据库特定功能,如存储过程作为一种方式,同时保持从上层的代码隐藏的数据库结构的执行行为.最后一步找到适合的模型来表示数据和将其移…
本系列记录并分享:学习利用Python写网络爬虫的过程. 书目信息 Link 书名: 用Python写网络爬虫 作者: [澳]理查德 劳森(Richard Lawson) 原版名称: web scraping with python 读书笔记汇总 00--建立练习环境 01--网络爬虫简介 02--数据抓取 03--下载缓存 04--并发下载 05--动态内容 06--表单交互 07--验证码处理 08--Scrapy 09--总结 参考信息 Python爬虫学习系列教程 Python Spid…
用Python写了一个Spider小爬虫,爬一爬斗鱼“王者荣耀”在线直播的主播及人气…
Javascript DOM 编程艺术(第二版),英Jeremy Keith.加Jeffrey Sambells著,杨涛.王建桥等译,人民邮电出版社. 学到这的时候,我发现一个问题:学习过程中,相当一部分东西的概念在初学时是无法完全弄懂的,很多时候都是学到很多东西后,串起来才能更进一步.而我的博客目地是自学与交流,所以我只能是暂时地用红字标注这些东西,以后弄懂了会补全这些(相应的,有些东西会删除).所以虽然说是某本书的读书笔记,但是写到后面绝对是不仅仅是局限于这本书了.所以不要指望着只看读书笔记…
 The Pragmatic Programmer读书笔记之中的一个 DRY-Don't Repeat Youself 尽管自己买了非常多软件project方面的书,可是由于时间的问题.一直没有静下心来充充电. 近期由于感觉自己在编程方面迫切须要有进一步的提高,于是打算好好的研读一下Andrew Hunt和David Thomas合著的<The Pragmatic Programmer:From Journeyman toMaster>.本来我是比較偏好原版的,买的书不是原版就是影印版,可…
每逢读书笔记上交作业时刻,班级blog页面上总能看到<人月神话>相关的读书笔记,本次软工课邓老师推荐的第一篇读书笔记也是写的<人月神话>,算是对它“耳濡目染”了.本周,我终于抽空读了这本书,感觉确实名不虚传.以下,我将从几方面谈谈我的感想. 一.焦油坑与银弹 书中将大型项目形象地比作焦油坑,开发者往往在巨大的项目里遇到纷繁复杂的问题,并在其中越陷越深,难以掌握全貌和本质.在我看来,软件的开发确实存在其固有问题,在一个开发团队开始挖坑时,由于思路的些许偏差.交流和认知水平的些许欠缺或…