
零基础一起学爬虫
零基础学习爬虫期间的笔记,项目实战
古老的屋檐下
电子科技大学信息与通信工程硕士
字节跳动基础架构(存储)工程师
展开
-
【爬虫实战】scrapy实战:爬取知乎用户信息
简介知乎用户信息是非常大的,本文是一个scrapy实战:怎样抓取所有知乎用户信息。爬取的思路如下图所示:选择一个知乎用户作为根节点每个用户都会有关注列表选择每一个用户的关注列表,进行递归爬取知乎用户信息站点分析本文以轮子哥为根节点(根节点可以随便选择),打开轮子哥的关注列表,并翻页查看关注列表:翻页是一个AJAX请求,每页20个关注用户,并且有一些简要的用户信息其中有一...原创 2019-04-20 15:45:02 · 1771 阅读 · 1 评论 -
【零基础学爬虫】scrapy中的pipline详解
scrapy中的pipline主要可以用来:清洗爬取到的数据数据去重去除无效数据数据存储在定义pipline时,只需要定义一个类并实现process_item(self, item, spider)方法,参数中的item就是爬取到的每一个数据对象,spider是爬虫的实例。该方法主要有两种返回值:item对象DropItem 异常:即抛弃当前的item另外,在自定义的类中...原创 2019-04-20 15:41:47 · 974 阅读 · 0 评论 -
【零基础学爬虫】scrapy中选择器详解
简介对网页解析时,不可避免需要使用选择器。本文主要介绍scrapy中的各类选择器,选择器其实就是scrapy内置selector对象:xpathcss他们的使用和之前介绍的CSS选择器类似,更多详细的介绍可以看下这里本文介绍一个模糊的css查询:<html> <head> <base href='http://example.com/' />...原创 2019-04-20 15:39:38 · 318 阅读 · 0 评论 -
【零基础学爬虫】scrapy框架的基本使用
回顾scrapy是一个非常强大的异步爬虫框架,组件丰富,我们只需要关注爬虫的逻辑即可。本文通过一个scrapy项目实战,来熟悉scrapy的使用站点分析目标站点:scrapy官方提供的抓取网站,主要是名人名言、作者标签之类的信息网页结构非常简单翻页url:http://quotes.toscrape.com/page/5/该网站没有任何的反爬虫措施,结果也很简单流程框架实现...原创 2019-04-20 15:34:56 · 251 阅读 · 0 评论 -
【零基础学爬虫】scrapy框架的安装
简介scrapy是一个强大的异步爬虫框架,具有丰富的组件,有了scrapy框架,我们只需要关心爬虫的逻辑就可以了。scrapy框架的安装scrapy的安装有多种方式,它支持 Python2.7版本及以上或 Python3.3版本及以上。下面说明 Python3环境下的安装过程scrap依赖的库比较多,至少需要依赖库有 Twisted14.0,m34, pyopenSSL0.14。而在不同平...原创 2019-04-20 15:28:22 · 350 阅读 · 0 评论 -
【爬虫实战】成都近五年的温度、空气质量变化趋势
简介博主是电子科技大学、信息与通信工程在亚特、研三在读,硕士在成都待了三年,毕业后即将前往北京字节跳动大数据开发岗位,进入人生的另一阶段。临近毕业,意味着即将告别人生中最后不到三个月的学生生涯。在离开天府之国之前,总想留下点什么,于是产生了本文。正文本文是一次爬虫实战,文章主要分析了成都近五年的温度、降雨、空气质量变化趋势。文章主要分为两个部分:温度、降雨的趋势统计空气质量的统计...原创 2019-04-20 15:24:35 · 3618 阅读 · 0 评论 -
【零基础学爬虫】使用Flask和redis维护Cookies池
为什么需要cookie池?网站需要登录才可爬取,例如新浪微博爬取过程中如果频率过高会导致封号需要维护多个账号的Cookies池实现⼤规模爬取cookie池要求⾃动登录更新定时验证筛选(失效与否)提供外部接⼝Cookies池架构源码源码比较长,就不贴源码了,需要源码的小伙伴扫描下方二维码,发送关键词“cookie”即可获取本文的完整源码和详细程序注释公众号专注:...原创 2019-04-20 15:21:40 · 239 阅读 · 0 评论 -
【零基础学爬虫】用代理抓取微信文章
简介搜狗已经做了一层微信文章的列表,微信公众号列表,但是搜狗自己做了一些反爬虫措施,本文使用代理池抓取微信公众号文章目标站点分析目标站点:搜狗对微信文章的爬取分析发现,地址栏中的地址中很多参数可以省略掉,最终的访问简洁地址:https://weixin.sogou.com/weixin?query=java&type=2&page=5&ie=utf8改变qu...原创 2019-04-20 15:18:44 · 545 阅读 · 0 评论 -
【零基础学爬虫】使用Flask+Redis维护代理池
简介写爬虫有时会面临封ip的问题,使用代理就可以伪装我们的IP。那么我们爬虫请求的时候可能就需要非常多的IP,这里我们维护了一个代理池:池内有非常多的IP,代理IP队列,我们可以向池内放代理ip,也可以从代理池中请求ip。我们需要定期检查和更新,保证代理池中的ip可用。Redis主要用于维护池,提供池的队列存储,flask主要用于实现代理池接口,使用flask可以从代理池拿出一个代理,这个过程...原创 2019-04-20 15:16:22 · 397 阅读 · 0 评论 -
【零基础学爬虫】分析Ajax,抓取今日头条街拍美图
简介本文通过分析Ajax请求,然后使用requests来爬取今日头条街拍美图数据。有些网页直接请求并没有包括我们在浏览器中看到的内容,这是因为这些信息是通过Ajax加载,并且通过js渲染生成的,这时候就需要我们分析网页的请求。本文使用的解析库是Beautifulsoup和正则表达式,请求使用的是requests目标站点分析今天我们要爬取的就是上图中的图片(1)请求分析邮件->检...原创 2019-04-20 15:10:34 · 536 阅读 · 1 评论 -
python中的yield详解
python中的yield功能比较强大,什么意思呢?如果一个函数f内使用了yield关键词,那么该函数就可以这样使用:for item in f(***): ****也就是包含yield关键词的函数可以在for循环中迭代,说到迭代第一印象是包含很多个元素才可以迭代,确实如此。举个更加详细的案例:需求::你需要产生一个按照特定规则增减的序列,比如最简单的递增序列:1,2,3…10...原创 2019-04-20 15:08:16 · 1470 阅读 · 0 评论 -
【零基础学爬虫】爬虫实战:爬取京东零食
简介使用Selenium+chrome/PhantomJS爬取京东零食。京东的页面比较复杂:含有各种请求参数、加密参数,如果直接请求或者分享Ajax的话会非常的繁琐,Selenium是一个自动化测试工具,可以驱动浏览器完成各种操作:模拟点击、输入、下滑等各种功能,如此一来,我们只需要关心操作,而不需要关心后台发生了什么样的请求。PhantomJS是无界面的浏览器,比Selenium方便,pha...原创 2019-04-18 14:40:21 · 1046 阅读 · 0 评论 -
【零基础学爬虫】爬虫实战:爬取猫眼Top100电影
准备之前讲解过Requests库的使用,以及正则表达式基础。今天我们将两者结合起来,实现第一个爬虫实战:使用Requests和正则表达式爬取猫眼电影的Top100。###爬取流程(1)目标分析打开网址:https://maoyan.com/board/4?offset=0,发现100部一篇一共分了10页,每一页10部影片:涵盖影片的名字,主演,时间以及评分。经过分析发现,分页的控制具体体...原创 2019-04-18 14:36:52 · 561 阅读 · 0 评论 -
【零基础学爬虫】Selenium库详解
什么是Selenium主要用于自动化测试工具,支持多浏览器:chrome,Firefox,Android浏览器等,主要用于驱动浏览器,给浏览器发一些指令,让浏览器执行各种动作:输入、跳转、点击、下拉等操作。它在爬虫中主要解决javaScript渲染问题,完全模拟网页的加载。在做爬虫的时候如果遇到Request、urllib无法正常获取网页内容,那么这可能是JavaScript渲染致使的问题,这...原创 2019-04-18 14:34:05 · 728 阅读 · 0 评论 -
【零基础学爬虫】PyQuery详解
回顾之前介绍了Beautifulsoup库,这个库可以让我们不写繁杂的正则表达式就可以爬取数据。但是你可能会觉得Beautifulsoup库不太好用,语法太繁杂,难记。今天介绍一个灵活又强大的网页解析库PyQuery。什么是PyQuery如果你熟悉jQuery的语法,那么PyQuery就是爬虫的绝佳选择,api可以无缝迁移。PyQuery的安装pip install pyqueryPy...原创 2019-04-18 14:26:53 · 284 阅读 · 0 评论 -
【零基础学爬虫】BeautifulSoup库详解
回顾上一次介绍正则表达式的时候,分享了一个爬虫实战,即爬取豆瓣首页所有的:书籍、链接、作者、出版日期等。在上个实战中我们是通过正则表达式来解析源码爬取数据,整体来说上次实战中的正则表达式是比较复杂的,所以引入了今天的主角BeautifulSoup:它是灵活方便的网页解析库,处理高效,而且支持多种解析器。使用Beautifulsoup,不用编写正则表达式就可以方便的实现网页信息的提取。一、 Be...原创 2019-04-18 14:24:00 · 390 阅读 · 0 评论 -
【零基础学爬虫】正则表达式
1. 什么是正则表达式正则表达式是对字符串串操作的⼀一种逻辑公式,就是⽤用事先定义好的⼀一些特定字符、及这些特定字符的组合,组成⼀一个“规则字符串串”,这个“规则字符串串”⽤用来表达对字符串串的⼀一种过滤逻辑。非Python独有,python中对应的是re模块介绍一个测试正则表达式的网站(该网站功能比较多):正则表达式的测试网站正则表达式功能比较强大,大部分编程语言都有提供对应的包...原创 2019-04-18 14:19:42 · 270 阅读 · 2 评论 -
【零基础学爬虫】requests库详解
【1】Requests简介Requests 是⽤用Python语⾔言编写,基于 urllib,采⽤ Apache2 Licensed 开源协议的 HTTP 库。它比 urllib 更加⽅便,可以节约我们⼤量的⼯工作,完全满足HTTP 测试需求。⼀句话:Requests是Python实现的简单易用的HTTP库#####Request的安装pip install requests#Re...原创 2019-04-18 14:16:56 · 305 阅读 · 0 评论 -
【零基础学爬虫】Urllib库的使用
回顾由上一篇文章知道:通过python代码向服务器发送request,然后通过获取response就可以获取到网页的内容了。那么python如何向网站发起请求呢?这个过程又是如何实现的呢?Urllibpython的Urllib库为我们实现了想浏览器发起请求的过程,Urllib是python内置的一个http请求库(不需要额外的手动安装),除了发起request,Urllib还提供了比较强大的...原创 2019-04-18 14:14:10 · 238 阅读 · 0 评论 -
【零基础学爬虫】爬虫基本原理
什么是爬虫请求网站,提取网页内容的最大化程序。获取到的是html代码,需要从这些文本中提取需要的数据发起请求:向目标站点发送HTTP请求,即发送一个Request,请求可以包括额外的header等信息,等待服务器响应2.获取响应内容如果服务器正常,在第一步会返回一个response,response的内容便是所要获取的页面内容,类型可能有HTML,Json字符串、二进制数据(如...原创 2019-04-18 14:12:22 · 420 阅读 · 0 评论 -
【零基础学爬虫】爬虫库简介
爬虫库urllibrerequests :pip install requestsselenium:自动化测试,js渲染的网页,这是使用requests无法请求,需要selenium;需要下载chromdriver,移动到配置好的环境变量路径中:这之后使用selenium可以打开chrome浏览器。这个需要浏览器界面form selenium import webdriverd...原创 2019-04-18 14:08:57 · 211 阅读 · 0 评论 -
【零基础学爬虫】markdown常用语法
markdown写笔记很方便,语法也很简洁。下面介绍markdown的常用语法:标题:使用“# 标题名”,几级标题就使用几个‘#’;如:markdown语法:### 测试三级标题效果:测试三级标题引用:使用“>”符号标识即可;markdown语法: > 测试效果:测试加粗字体:**待加内容**;(前后个两个*号)markdown语法: **测试*...原创 2019-04-18 14:06:52 · 270 阅读 · 0 评论