爬虫
-
Python网络爬虫(scrapy中selenium的应用)
一、项目背景 在通过scrapy框架进行某些网站数据爬取的时候,往往会碰到页面动态数据加载的情况发生,如果直接使用scrapy对其url发请求,是绝对获取不到那部分动态加载出来的数据值。但是通过观察我们会发现,通过浏览器进行url请求发送则会加载出对应的动态加载出的数据。那么如果我们想要在scrapy也获取动态加载出的数据,则必须使用selenium创建…
-
Python网络爬虫(增量式爬虫)
一、增量式爬虫背景: 当我们在浏览相关网页的时候会发现,某些网站定时会在原有网页数据的基础上更新一批数据,例如某电影网站会实时更新一批最近热门的电影。小说网站会根据作者创作的进度实时更新最新的章节数据等等。那么,类似的情景,当我们在爬虫的过程中遇到时,我们是不是需要定时更新程序以便能爬取到网站中最近更新的数据呢? 二、增量式爬虫分析与设计 概念:通过爬虫…
-
Python网络爬虫(scrapy的日志等级和请求传参)
一、Scrapy的日志等级 在使用scrapy crawl spiderFileName运行程序时,在终端里打印输出的就是scrapy的日志信息。 日志信息的种类: ERROR : 一般错误 WARNING : 警告 INFO : 一般的信息 DEBUG : 调试信息 设置日志信息指定输出: # 在setti…
-
Python网络爬虫(selenium配置无头浏览器)
一、无头浏览器(phantomJS) PhantomJS是一款无界面的浏览器,其自动化操作流程和上述操作谷歌浏览器是一致的。由于是无界面的,为了能够展示自动化操作流程,PhantomJS为用户提供了一个截屏的功能,使用save_screenshot函数实现。 目前PhantomJS浏览器官方已停止维护,不建议使用 from selenium impo…
-
Python网络爬虫(数据解析-re模块)
一、实现数据爬取的流程 指定url 基于requests模块发起请求 获取响应对象中的数据 数据解析 进行持久化存储 在持久化存储之前需要进行指定数据解析。因为大多数情况下的需求,我们都会指定去使用聚焦爬虫,也就是爬取页面中指定部分的数据值,而不是整个页面的数据。 二、常用正则表达式回顾 单字符: . : 除换行以外所有字符 [] :[aoe]…
-
Python网络爬虫(图片懒加载技术)
一、图片懒加载技术 图片懒加载概念: 图片懒加载是一种网页优化技术。图片作为一种网络资源,在被请求时也与普通静态资源一样,将占用网络资源,而一次性将整个页面的所有图片加载完,将大大增加页面的首屏加载时间。为了解决这种问题,通过前后端配合,使图片仅在浏览器当前视窗内出现时才加载该图片,达到减少首屏图片请求数的技术就被称为“图片懒加载”。 网站一般如何实现图片懒…
-
Python网络爬虫(http和https协议)
一、HTTP协议概念 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。 二、HTTP工作原理 HTTP协议工作于客户端-服务端架构为上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有…
-
Python网络爬虫(线程池)
基于multiprocessing.dummy线程池的数据爬取 一、项目实例(测试异步与同步效率) flask创建服务器: from flask import Flask from time import sleep app = Flask(__name__) @app.route(‘/bobo’) def index1(): sleep(2) retu…
-
Python网络爬虫(认识爬虫)
一、什么是爬虫 爬虫就是通过编写程序模拟浏览器上网,然后让其去互联网上抓取数据的过程。 二、哪些语言可以实现爬虫 1.php:可以实现爬虫。php被号称是全世界最优美的语言(当然是其自己号称的,就是王婆卖瓜的意思),但是php在实现爬虫中支持多线程和多进程方面做的不好。 2.java:可以实现爬虫。java可以非常好的处理和实现爬虫,是唯一可以与pyt…
-
Python网络爬虫(requests模块应用1)
一、什么是requests模块? requests模块是python中原生的基于网络请求的模块,其主要作用是用来模拟浏览器发起请求。功能强大,用法简洁高效。在爬虫领域中占据着半壁江山的地位。 二、为什么要使用requests模块 因为在使用urllib模块的时候,会有诸多不便之处,总结如下: 手动处理url编码 手动处理post请求参数 处理cookie…