python爬虫
Mrkang1314
这个作者很懒,什么都没留下…
展开
-
Scrapy——Item Exporters
什么是Item Exporters?当你抓取了你想要的数据,你就会想要将他们持久化或导出它们,并应用在其他程序。这是整个抓取过程的目的。为此,Scrapy 提供了Item Exporters来创建不同的输出格式。如何工作?为了使用Item Exporter,你必须对Item Exporter及其参数实例化。每个Item Exporter需要考虑不同的参数。在实例化exporter之后,你必须...原创 2018-09-19 13:54:48 · 823 阅读 · 0 评论 -
Python网络爬虫——并发下载
如果要爬取一个大型网站时,串行下载显然已经不再适用,所以使用并发下载,用多线程和多进程这来嗯中下载网页的方式。 测试环境 Alexa提供了最受欢迎的100万个网站列表, 网址http://www.alexa.com/topsites 也可以通过http://s3.amazonaws.com/alexa-static/top-1m.csv.zip 直接下载这一列表的压缩文件。 解析Ale...原创 2018-08-31 12:26:17 · 452 阅读 · 0 评论 -
python网络爬虫——下载缓存(数据库)
数据库缓存介于磁盘缓存的限制,爬取到的数据量比较大,但又无任何复杂的连接,所以选用NoSQL数据库,这种数据库相比创痛的关系型数据库更容易扩展。 什么是NoSQL? NoSQL全称Not Only SQL,与传统的关系型数据库不同,NoSQL数据库通常是无模式的,考虑了跨服务器无缝分片问题。有多种方式可以实现该目标,分别是列数据存储(HBase)、键值对存储(Redis)、面向文档的数据库...原创 2018-08-17 09:04:49 · 549 阅读 · 0 评论 -
python网络爬虫——下载缓存(磁盘)
为链接爬虫添加缓存支持 将之前的download函数重构为一个类,将限速功能放到下载函数中,只有在真正的下载时在会触发限速,而在加载时不会触发。#DownLoad.pyimport randomimport reimport socketimport urllib2import urlparseimport timeimport datetime#设置代理服务器DE...原创 2018-08-16 19:32:20 · 655 阅读 · 0 评论 -
python网络爬虫——编码
输出格式化输出 prettify()方法将BeautifulSoup的文档格式化后以unicode编码输出,每个XML/HTML标签都独占一行。markup='<a href="http://example.com/">I linked to <i>example.com</i></a&原创 2018-08-15 05:40:16 · 302 阅读 · 0 评论 -
python网络爬虫——lxml
解析XML字符串 网页下载下来以后是字符串的形式,使用etree.fromstring(str)构造一个etree._ElementTree对象,使用etree.tostring(t)返回一个字符串from lxml import etreexml_string='<root><foo id="foo-id" class=&原创 2018-08-14 18:02:43 · 859 阅读 · 0 评论 -
python网络爬虫——Beautiful Soup的使用
什么是Beautiful Soup? 是一个可以从HTML或XML文件中提取数据的Python库,它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式。 安装pip install beautifulsoup4解析器 Beautiful Soup支持Python标准库中的HTML解析器,还支持一些第三方的解析器,比如lxml。pip install lxml...原创 2018-08-12 21:58:36 · 578 阅读 · 1 评论 -
python网络爬虫——数据抓取
我们需要让爬虫从每个网页中抽取一些数据,然后实现某些事情,这种做法被称为抓取。 分析网页 查看网页源代码,使用Firebug Lite扩展,Firebug是Joe Hewitt开发的一套与Firefox集成在一起的功能强大的web开发工具,可以实时编辑、调试和监测任何页面的CSS、HTML和JavaScript。在这里用于网页源代码的查看。 安装Firebug Lite,下载Firebug ...原创 2018-08-12 21:58:15 · 1038 阅读 · 0 评论 -
python网络爬虫——初识
对目标站点的规模和结构进行一定程度的了解 1.检查robots.txt:可以让爬虫了解爬取该网站时存在哪些限制; 2.检查网站地图:网站提供Sitemap文件可以帮助爬虫定位网站最新的内容,而无需爬取每一个网页; 3.估计网站大小;可以通过Google搜索的site关键词过滤域名结果; 4.网站所用技术:构件网站所用的技术也会对我们的爬虫产生影响,可以使用builtwith这个工具,它可以...原创 2018-08-11 22:02:49 · 245 阅读 · 0 评论 -
Python网络爬虫——动态内容
很多网站都在其重要功能中依赖JavaScript,和单页面应用的简单事件不同,使用JavaScript时,不再是加载后立即喜爱在所有页面内容。这样就会造成许多网页在浏览器中显示的内容不会再HTML源码中。 什么是AJAX? AJAX是指异步JavaScript和XML,描述了一种跨浏览器动态生成Web应用内容的功能。动态网页示例访问http://example.webscrapin...原创 2018-10-04 09:21:31 · 238 阅读 · 0 评论 -
python网络爬虫——表单交互
将与网页进行交互,根据用户输入返回对应的内容。有些网站需要在登录后才能访问某个网页,在登录之前不允许访问。所以使用用户表单交互传递参数登录。 表单方法 HTML定义了两种向服务器提交数据的方法,分别是GET和POST。使用GET时,会将类似?name1=value1&name2=value2的数据添加到URL中,这串数据被称为“查询字符串”。由于浏览器存在URL长度限制,因此这种方法只...原创 2018-09-05 20:00:17 · 3418 阅读 · 0 评论 -
python网络爬虫——验证码处理
许多网站使用验证码来防御与其网站交互的机器人程序。 注册帐号 注册页面这里写链接内容 加载验证码图像 首先需要从表单中获取该图像。 图像是嵌入网页中的,而不时从其他URL加载过来的。 Pillow提供了一个便捷的Image类,其中包含了很多用于验证码处理的高级方法。from io import BytesIOimport lxml.htmlfrom PIL impo...原创 2018-09-08 17:59:36 · 454 阅读 · 0 评论 -
Scrapy——Feed exports
实现爬虫时最经常提到的需求就是能合适的保存爬取到的数据,或者说,生成一个带有爬取数据的“输出文件”,来供其它系统使用。Scrapy自带了Feed输出,并且支持多种序列化格式及存储方式。序列化方式feed 输出使用到了Item exporters。其自带的类型有:JSONJSON linesCSVXML也可以通过FEED_EXPORTERS设置扩展支持的属性。JSONFEE...原创 2018-09-19 09:26:34 · 355 阅读 · 0 评论 -
Scrapy——Item Pipeline
当Item在Spider中被收集之后,它将会被传递到Item Pipeline,一些组件会按照一定的顺序执行Item的处理。每个item pipeline组件是实现了简单方法的Python类。他们接收到Item并通过它执行了一些行为ie,同时也决定了此Item是否继续通过pipeline,或是被丢弃而不再进行一些处理。以下是item pipeline的一些典型应用:清理HTML数据验证爬...原创 2018-09-19 08:38:31 · 214 阅读 · 0 评论 -
Scrapy—— Item Loaders
用Item Loader来填充ItemItem Loaders 提供了一种便捷的方式填充抓取到的Items。虽然Items可以使用自带的类字典形式API填充,但是Items Loaders提供了更便捷的API,可以分析原始数据并对Item进行赋值。 另一方面,Items提供保存抓取数据的容器,而Item Loaders提供的时填充容器的机制。Item Loaders提供的是一种灵活,高效的机...原创 2018-09-16 12:40:32 · 329 阅读 · 0 评论 -
Scrapy——选择器(Selectors)
当抓取网页时,做的最常见的任务就是从HTML源码中提取数据。BeautifulSoup时非常流行的网页分析库,它基于K+HTML到码的结构来构造一个Python对象,但是它很慢。lxml是一个基于ElemenTree的python化的XML的解析库。Scrapy提取数据有自己的一套机制。被称为ie选择器,因为它们通过特定的XPath或者CSS表达式来选择HTML文件种的某个部分。XP...原创 2018-09-15 18:05:24 · 401 阅读 · 0 评论 -
Scrapy——基本用法(命令行工具、Item、Spiders)
命令行工具创建项目scrapy startproject myproject该命令经会在myproject目录中创建一个Scrapy项目。进入到项目根目录,就可以使用scrapy命令来管理和控制你的项目了。 控制项目 有些Scrapy命令要求在Scrapy项目中运行。另外注意,有些命令在项目里运行时的效果有些区别。scrapy <command> -h查看所...原创 2018-09-15 10:23:43 · 2578 阅读 · 0 评论 -
Scrapy——安装及使用
安装目前只支持python2pip install Scrapy升级Scrapypip install --upgrade ScrapyUR²IM——基本抓取流程和Scrapy打交道时,你所遵循得最通用的流程是UR²IM流程。 创建项目进入你想保存项目的目录scrapy startproject tutorialtutorial/...原创 2018-09-14 17:11:31 · 370 阅读 · 0 评论 -
Scrapy——理解HTML和XPath
HTML、DOM树以及XPath从用户在浏览器输入URL到屏幕显示的过程。在浏览器输入URL。URL的第一部分用于在网络上找到合适的服务器,而URL以及cookie等其他数据则构成一个请求,用于发送到那台服务器中。服务器回应,向浏览器发送一个HTML页面。也可能返回其他格式,比如XML和JSON。将HTML转换成浏览器内部的树状表示形式:文档对象模型。基于一些布局规则渲染内部表示,...原创 2018-09-13 08:08:54 · 1340 阅读 · 0 评论 -
Scrapy——初识
什么是Scrapy? Scrapy是一个健壮的网络框架,它可以从各种数据源中抓取数据。以健壮又有效的方式抽取大量数据。 优势使用Scrapy,你只需一个简单的设置,就能完成其他爬虫框架中需要很多类、插件和配置才能完成的工作。允许将数据清洗、格式化、装饰化以及将这些数据存出道数据库中等操作级联起来。由于Scrapy是基于事件的,这就能够让我们在拥有上千个打开的链接时,可以通过平稳的操作...原创 2018-09-12 20:21:04 · 196 阅读 · 1 评论 -
python爬取猫眼电影信息
爬取TOP100所有电影的信息,(电影名, 主演, 上映时间)爬取该电影的宣传封面的图片, 保存到本地/mnt/img/目录中;将获取的信息, 保存到mysql数据库中(电影名, 主演, 上映时间, 封面图片的本地路径)import re#<p class="releasetime">上映时间:1998-04-03</p&原创 2018-06-26 14:48:53 · 799 阅读 · 0 评论