
爬虫
CopperDong
纯属巧合
展开
-
xpath路径表达式笔记
简单说,xpath就是选择XML文件中节点的方法。所谓节点(node),就是XML文件的最小构成单位,一共分成7种。- element(元素节点)- attribute(属性节点)- text (文本节点)- namespace (名称空间节点)- processing-instruction (处理命令节点)- comment (注释节点)- ro转载 2017-12-06 21:04:08 · 719 阅读 · 0 评论 -
Python网络数据采集7: 数据清洗
网站的真实故事其实都隐藏在JavaScript、登录表单和网站反抓取措施的背后。 通过第二部分(7-14章)的内容的学习,你将掌握如何用网络爬虫测试网站,自动化处理,以及通过更多的方式接入网络。最后你将学到一些数据采集的工具,帮助你在不同的环境中收集和操作任意类型的网络数据,深入互联网的每个角落。 由于错误的标点符号、大小写字母不一致、断行和拼写错误等问题,零乱的数据(dirt原创 2017-12-28 20:42:50 · 1324 阅读 · 0 评论 -
Python爬虫开发与项目实战 1:回顾Python编程
https://github.com/qiyeboy/SpiderBook第一章 回顾Python编程 本书采用的是Python 2.7版本 搭建Eclipse + PyDev : 通过扩展PyDev插件,Eclipse就具有了编写Python程序的功能。 启动Eclipse, 点击Help -> Install New Softwa原创 2018-01-04 21:35:50 · 972 阅读 · 0 评论 -
Python网络数据采集8:自然语言处理
8.1 概括数据 源自美国第九任总统威廉 ·亨利 ·哈里森的就职演说http://pythonscraping.com/files/inaugurationSpeech.txt# -*- coding: utf-8 -*-from urllib.request import urlopenfrom bs4 import BeautifulSoupimport reimport原创 2017-12-28 20:54:30 · 876 阅读 · 0 评论 -
Python网络数据采集9:穿越网页表单与登录窗口进行采集
到目前为此,我们都是用GET方法去请求信息,这一章介绍POST方法,即把信息推送给服务器进行存储和分析。 表单可以帮助用户发出POST请求,当然,通过爬虫创建这些请求提交给服务器9.1 Python Requests库 Requests库是一个擅长处理那些复杂的HTTP请求、cookie、header(响应头和请求头)等内容的Python第三方库 https://g原创 2017-12-29 17:23:03 · 920 阅读 · 0 评论 -
Python网络数据采集10:采集JavaScript
客户端脚本语言是运行在浏览器而非服务器上的语言。客户端语言成功的前提是浏览器拥有正确地解释和执行这类语言的能力。 在一定程度上,由于很难让所有浏览器开发商都认可同一个标准,所以客户端语言比服务器端语言要少很多。 通常,你在网上遇到的客户端语言只有两种:ActionScript(开发Flash应用的语言)和JavaScript。今天ActionScript的使用率比10年前低很多原创 2017-12-29 20:08:09 · 688 阅读 · 0 评论 -
Python网络数据采集11:图像识别与文字处理
用一些Python库来识别和使用在线图片中的文字。 将图像翻译成文字一般被称为光学文字识别(Optical Character Recognition, OCR)。11.1 OCR库概述 虽然有很多库可以进行图像处理,这里只重点介绍两个库:Pillow和Tesseract。 Pillow是从Python 2.x版本的Python图像库(PIL)分出来的,支持P原创 2017-12-29 21:51:44 · 1294 阅读 · 0 评论 -
Python爬虫开发与项目实战 2:Web前端基础
2.1 W3C标准 网页主要由三部分组成:结构、表现和行为 对应的标准也分三方面: 结构化标准语言:XHTML和XML 表现标准语言:CSS 行为标准:对象模型(DOM)、ECMAScript等 HTML:浏览器通过标记来解释页面的内容。 特点包括:可以设置文本的原创 2018-01-04 21:38:46 · 930 阅读 · 0 评论 -
Python爬虫开发与项目实战 3: 初识爬虫
3.1 网络爬虫概述 概念:按照系统结构和实现技术,大致可分:通用网络爬虫、聚焦爬虫、增量式爬虫、深层爬虫。实际的爬虫系统通常是几种技术的相结合实现的。 搜索引擎:属于通用爬虫,但存在一定的局限性: 检索结果包含大量用户不关心的网页 有限的服务器资源与无限的网络数原创 2018-01-05 21:30:01 · 1481 阅读 · 0 评论 -
Python网络数据采集6:读取文档
虽然互联网在20世纪60年代末期就已经以不同的形式出现,但是HTML直到1992年才问世。在此之前,互联网基本上就是收发邮件和传输文件;今天看到的网页的概念那时还没有。总之,互联网并不是一个HTML页面的集合。它是一个信息集合,而HTML文件只是展示信息的一个框架而已。如果我们的爬虫不能读取其他类型的文件,包括纯文本、PDF、图像、视频、邮件等,我们将会失去很大一部分数据。6.1 文档编码原创 2017-12-28 19:18:20 · 529 阅读 · 0 评论 -
如何用Python快速爬取B站全站视频信息
B站我想大家都熟悉吧,其实 B 站的爬虫网上一搜一大堆。不过纸上得来终觉浅,绝知此事要躬行,我码故我在。最终爬取到数据总量为 760万 条。准备工作首先打开 B 站,随便在首页找一个视频点击进去。常规操作,打开开发者工具。这次是目标是通过爬取 B 站提供的 api 来获取视频信息,不去解析网页,解析网页的速度太慢了而且容易被封 ip。勾选 JS 选项,F5 刷新转载 2018-01-03 18:45:37 · 7917 阅读 · 3 评论 -
Python网络数据采集12:避开采集陷阱
服务器拒绝处理表单,IP地址被封杀。如何克服网站阻止自动采集12.1 道德规范 为什么要教采集 :采集那些不想被采集的网站时,其实存在一些非常符合道德和法律规范的理由不太可能建立一个完全“防爬虫”的网站和大多数程序员一样,从来不相信禁止某一类信息的传播就可以让世界变得更和谐12.2 让网站机器人看起来像人类用户 网站防采集的前提是要正确地区分人类访问用户和原创 2017-12-30 20:54:24 · 866 阅读 · 0 评论 -
Python网络数据采集13:用爬虫测试网站
用网络爬虫代替人眼进行测试前端,把检查表变成单元测试。13.1 测试简介 什么是单元测试:13.2 Python单元测试 unittest模块 测试维基百科:13.3 Selenium单元测试 myElement.click() myElement.click_and_hold() myElement.relea原创 2017-12-30 21:08:06 · 794 阅读 · 0 评论 -
Python网络数据采集14:远程采集
程序在不同的机器上运行,或者在电脑上用不同的IP地址运行。14.1 为什么要用远程服务器 有两个目的:对更大计算能力和灵活性的需求,以及对可变IP地址的需求。 避免IP地址被封杀: 移植性与扩展性:14.2 Tor代理服务器 虽然每个服务器的入站和出站通信都可以被查到,但是要想查出通信的真正起点和终点,必须知道整个通信链路上所有服务器的入站和原创 2017-12-30 21:31:36 · 613 阅读 · 0 评论 -
Python网络数据采集1:初见网络爬虫
前言所有代码示例:https://github.com/REMitchell/python-scraping网络数据采集程序:有时称为网络机器人(bots),是一种通过多种手段收集网络数据的方式,不光是通过与API交互的方式。最常用的方法是写一个自动化程序向网络服务器请求数据(通常是用HTML表单或其他网页文件),然后对数据进行解析,提取需要的信息。涉及非常广泛的编程技术和手段,比如数据分原创 2017-12-26 14:59:44 · 1015 阅读 · 1 评论 -
Python网络数据采集2:复杂HTML解析
2.1 不是一直都要用锤子 如果直接HTML标签中的信息,网站管理员对网站稍微修改之后,爬虫就会失效,那么该怎么做呢?寻找“打印此页”的链接,或者接受网站移动版寻找隐藏在JavaScripy文件里的信息。虽然网页标题经常会用到,但是这个信息也许可以从网页的URL链接里获取寻找其他数据源2.2 再端一碗BeautifulSoup Spider可以通过CSS中的Cla原创 2017-12-26 15:52:28 · 970 阅读 · 1 评论 -
Python网络数据采集3:开始采集
Web crawler的本质是一种递归方式。使用Web Crawler的时候,必须非常谨慎地考虑需要消耗多少网络流量,还要尽力思考能不能让采集目标的服务器负载更低一些。3.1 遍历单个域名 维基百科六度分隔理论:小世界from urllib.request import urlopenfrom bs4 import BeautifulSouphtml = urlopen(原创 2017-12-26 17:11:51 · 5559 阅读 · 2 评论 -
Python网络数据采集4:使用API
一般情况下,程序员可以用HTPP协议向API发起请求以获取某种信息,API会用XML或JSON格式返回服务器响应的信息。 通常不会把使用API看成网络数据采集,但是实际上两者使用的许多技术(都是发送HTTP请求)和产生的结果(都是获取信息)差不多;两者经常是相铺相成的关系。 如把维基百科编辑历史(里面有编辑者IP地址)和一个IP地址解析的API组合起来,以获取维基百科词条编辑者的地原创 2017-12-26 21:51:28 · 1074 阅读 · 0 评论 -
Python网络数据采集5:存储数据
本章将介绍三种主要的数据管理方法,对绝大多数应用都适用。如果你准备创建一个网站的后端服务或者创建自己的API,那么可能都需要让爬虫把数据写入数据库。如果你需要一个快速简单的方法收集网上的文档,然后存到你的硬盘里,那么可能需要创建一个文件流来实现。如果还要为偶然事件提醒,或者每天定时收集当天累计的数据,就给自己发一封邮件吧!5.1 媒体文件 只存储文件的URL链接的缺点:这原创 2017-12-27 17:19:12 · 933 阅读 · 0 评论 -
Python爬虫开发与项目实战 4: HTML解析大法
Firebug工具的使用、正则表达式和Beautiful soup4.1 初识Firebug XPath和CSS查找路径表达式4.2 正则表达式 多练习4.3 强大的BeautifulSoup 从HTML或XML文件中提取数据的Python库 sudo apt-get install Python-bs4 BS支持Python标准库中的HTML解析器,还支持一些第三方的解...原创 2018-05-15 22:13:17 · 508 阅读 · 0 评论