python爬虫怎么做?

瀑布冰封


Python,可以帮忙抢票,可以爬虫东西,关于Python爬虫怎么做?今天教大家一个案例,python爬虫多线程实战:爬取美桌1080p壁纸图片 | 技术

技术点分析

· 爬虫requests

· 多线程threading

· 文件io读写操作

· xpath 提取ur

· 正则

实战

· 分析url

搞清楚各个url 的关联win4000.com/wallpaper_205_0_10_1.html

URL中与分类的关系:

wallpaper : 桌面壁纸

205 :壁纸分类对应大陆明星

10 :图片尺寸对应1920*1080

分析到这一部,我们知道 ,如果要需要其他类型的壁纸,只需要更改网站分类代码就可以了。

· 谷歌 charme ,通过右键检查

chrame 浏览器右键提示。

按图顺序,依次找到对应的html标签。

通过查看,我们发现 中间展示 的图片是由一个ul 标签包裹的 多个Li

我们所要跳转的链接 就在 Li 标签中, 这时就需要使用xpath进行数据的提取。

到此,我们第一层url 的分析就完成了。可以写出以下代码段。

此时通过xpath 获到当前页面中的 ul 中所有li 标签了。

那单个明星的跳转链接只需要再次xpath 进行提取就Ok了。

完成到这里你的代码运行结果应该如下:是两个列表list。

运行结果

准备下载图片

到这,完成第一步,你已经成功获到 每个明星的跳转链接 :

url: win4000.com/wallpaper_detail_153895.html

再次进行url 的分析:

初步分析

通过上图的分析,可以找到这张图,是我们要 1080规格的。但很可惜,一共9张,现在只能找到一张图片的url。

选其中两张图片地址对比:

pic1.win4000.com/wallpaper/2018-12-26/5c22eb195abe8.jpg

pic1.win4000.com/wallpaper/2018-12-26/5c22eb1c722dc.jpg

好像就是后面文件名不同。如果一张张取是不是很麻烦?

不信你自己去试一下。点再分析一下页面,有个 【查看原图】 选项,点一下试试呢?

点击上图出,点完发现了url的变化。

再看看有没有惊喜的地方 :

上图为url分析。

通过上图的分析 ,我们发现原来这个big页面有我们想要的所有 1080P的图片,而且,全是用ul 包裹,放到单个Li 标签中 。那简单了,用之前的办法 再提取一次,就出来了。代码如下:

到这里,我们第一步就完成了一页24个明星图片的地址url的爬取。第二步,完成了单个明星的1080图片地址url的爬取。下一步,我们把图片保存到本地就顺利结束。

图片保存

按需求,要单独到一个文件夹内。那我们就需要在本地路径内 创建对应的文件夹。此处使用 star_img_name 列表中的值。需要使用到i/o读写操作。

顺利完成 这个需求:

源码展示

代码运行结果若不同,可看一眼源码:

运行起来是不是很慢(完善版使用多线程),而且这样看代码,是不是有种:干干巴巴的,麻麻咧咧的,一点都不圆润,盘他!!

完善版是可以完成可选分类,可选规格 ,多线程版。希望这个小实战案例可以帮到大家。

有关于Python爬虫的课程:

Python爬虫数据挖掘基础教程

python网络爬虫第一天

python网络爬虫第二天


有想学习的小伙伴,可以关注黑马程序员,后台回复“Python爬虫”哦!


黑马程序员


爬虫实际就是自动化的去做网络后获得想要的数据。

做网络爬虫通常可以用Python、Java、C等,甚至有人用Go和Nodejs等做爬虫,语言并不是最重要的,爬取理念并实现(即怎么爬到)才是重要的,只是Python开发快,符合做爬虫快速开发的需求且生态较好所以更多人使用。

下面讲讲我自学爬虫后总结的方法:

1.首先是网络请求,大致会了解使用到http、https协议,请求方法大致为GET/POST/PUT/HEAD/DELETE等,而Python中会使用到默认库如urllib,而使用久了会发现并不pythonic,所以你会发现一个非内置却胜似内置的requests,自动化测试用的selenium等。紧接着你会需要格式化你要的文本,例如json、正则re、dom解析beautifulsoup、xml及xpath等;

2.取得数据后你会考虑让数据落地操作,这时候会考虑redis、mq、kafka等队列及缓存系统亦或常见如MySQL、Oracle、sqlite、mongodb、hbase、elasticsearch等数据库;

3.而在这移动时代,你会发现你开始需要的数据不止在PC端,还在手机端,APP端,因此你开始需要尝试抓包软件(中间人攻击),如fiddler、阿里的Anyproxy、Python的Mitmproxy等,并采用Appium、adb、按键精灵等进行模拟操作从而实现自动化,当然你也可以尝试对APP进行反编译等操作;

4.而后你发现你的爬虫爬取速度开始不能满足你的需求,所以你开始学习尝试使用异步、多线程/多进程、分布式,开始使用爬虫框架Scrapy、spider等来爬取一些大同小异的站点;

5.正当你爬的欢愉时反爬虫开始捂住你大笑的嘴,你会碰到 头部信息识别、动态网页、ajax异步请求、JS压缩代码混淆、自定义字体库、验证码、IP封锁(动态代理、拨号代理等)、账号登录(封号)、蜜罐投毒等等五花八门的手段,这时候也只能看谁手段硬了;

6.在与移动端交互中,数据可视化下,你会开始需要使用web框架如Flask/Django/Springboot等写接口,而可视化会用到常见的echarts、D3.js等进行图表渲染;

好了,本次吹水暂时到这里,手机敲字实在是累,所以你还想了解其他的?那就下次再说吧[灵光一闪]



佛系看世界


自己从大学开始就学习 Python,目前已经有四五年了 。当初之所以想学习 Python,就是因为看着 Python 能做网络爬虫,能将互联网中的数据收揽在囊中。其实 Python 爬虫不难,只要你用心,能很快学会。


我当时买了一本《Python 基础入门(第二版)》,书中的环境是 Python 2.7。当时我看到 Python 有 3.X 版本,就果断选择新版本。因为自己觉得初学者,选择什么版本都行,不如就选择新版本,这样学到的技术就不会那么快就过时。自己当时是有了 C 语言的编程基础,上手 Python 就很快。自己利用两个星期的时间将这本书给啃完了。这算是将一些 Python 语法基础以及基本操作学会了。然后自己就开始学习爬虫。


自己总结下自己学习爬虫的路线和经验,一共分为四个阶段。希望能帮到你。


第一阶段:夯实

入门要就是在打基础,所以要从最基础的库学起。下面是几个库是入门最经典的

1)urllib

它属于 Python 标准库。该库的作用是请求网页并下载数据。在学习该库之前,最好把 HTTP 协议了解下。这会大大提高后面的学习效率。


先学会如何使用 urllib 请求到数据,再学习一些高级用法。例如: - 设置 Headers: 某些网站反感爬虫的到访,于是对爬虫一律拒绝请求。设置 Headers 可以把请求伪装成浏览器访问网站。 - Proxy 的设置: 某些站点做了反倒链的设置,会将高频繁访问的 IP 地址封掉。所以我们需要用到代理池。 - 错误解析:根据 URLError 与 HTTPError 返回的错误码进行解析。 - Cookie 的使用:可以模拟网站登录,需要结合 cookielib 一起使用。


值得吐槽的是:Python 2.7 和 3.x 版本不兼容很坑。Python 2.7 是有两个 urllib 库,到了 Python 3.x 就合并为同一个库。


2)re

re 是正则表达式库。同时也是 Python 标准库之一。它的作用是匹配我们需要爬取的内容。所以我们需要掌握正则表达式常用符号以及常用方法的用法。


3)BeautifulSoup

BeautifulSoup 是解析网页的一款神器。它可以从 HTML 或者 XML 文件中提取数据。配合 urllib 可以编写出各种小巧精干的爬虫脚本。


第二阶段:进阶

当把基础打牢固之后,我们需要更进一步学习。使用更加完善的库来提高爬取效率

1) 使用多线程

使用多线程抓取数据,提高爬取数据效率。


2)学习 Requests

Requests 作为 urlilb 的替代品。它是更加人性化、更加成熟的第三方库。使用 Requests 来处理各种类型的请求,重复抓取问题、cookies 跟随问题、多线程多进程、多节点抓取、抓取调度、资源压缩等一系列问题。


3)学习 Xpath

Xpath 也算是一款神器。它是一款高效的、表达清晰简单的分析语言。掌握它以后介意弃用正则表达式了。一般是使用浏览器的开发者工具 加 lxml 库。


4)学习 Selenium

使用 Selenium,模拟浏览器提交类似用户的操作,处理js动态产生的网页。因为一些网站的数据是动态加载的。类似这样的网站,当你使用鼠标往下滚动时,会自动加载新的网站。


动态加载数据是利用到 Ajax 技术。如果你能逆向分析出网站请求的方法以及参数(参数经常是加密的),那么可以直接使用 Requests 库直接替代浏览器抓取数据。

实在没有办法,可以使用 Selenium 启动浏览器来抓取。


第三阶段:突破

1)学习 Scrapy

Scrapy 是一个功能非常强大的分布式爬虫框架。我们学会它,就可以不用重复造轮子。


2)数据存储

如果爬取的数据条数较多,我们可以考虑将其存储到数据库中。因此,我们需要学会 MySql MongoDB、SqlLite的用法。更加深入的,可以学习数据库的查询优化。


第四阶段:为我所用

当爬虫完成工作,我们已经拿到数据。我们可以利用这些数据做数据分析、数据可视化、做创业项目原始启动数据等。 我们可以学习 NumPy、Pandas、 Matplotlib 这三个库。 - NumPy :它是高性能科学计算和数据分析的基础包。

  • NumPy :它是高性能科学计算和数据分析的基础包。
  • Pandas : 基于 NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。它可以算得上作弊工具。
  • Matplotlib:Python中最著名的绘图系统Python中最著名的绘图系统。它可以制作出散点图,折线图,条形图,直方图,饼状图,箱形图散点图,折线图,条形图,直方图,饼状图,箱形图等。

-----------------------------------------------

喜欢的、觉得有用的麻烦点个赞,万分感谢~

个人微信公众号:极客猴(ID:Geek_monkey)

自己坚持分享 Python 原创干货,包括基础入门,进阶技巧,网络爬虫,数据分析,Web 应用开发等。。欢迎关注~


极客猴


大到各类搜索引擎,小到日常数据采集,都离不开网络爬虫。爬虫的基本原理很简单,遍历网络中网页,抓取感兴趣的数据内容。这篇文章会从零开始介绍如何编写一个网络爬虫抓取数据,然后会一步步逐渐完善爬虫的抓取功能。


工具安装

我们需要安装python,python的requests和BeautifulSoup库。我们用Requests库用抓取网页的内容,使用BeautifulSoup库来从网页中提取数据。

  • 安装python

  • 运行pip install requests

  • 运行pip install BeautifulSoup


抓取网页

完成必要工具安装后,我们正式开始编写我们的爬虫。我们的第一个任务是要抓取所有豆瓣上的图书信息。我们以https://book.douban.com/subject/26986954/为例,首先看看开如何抓取网页的内容。

使用python的requests提供的get()方法我们可以非常简单的获取的指定网页的内容, 代码如下:


提取内容

抓取到网页的内容后,我们要做的就是提取出我们想要的内容。在我们的第一个例子中,我们只需要提取书名。首先我们导入BeautifulSoup库,使用BeautifulSoup我们可以非常简单的提取网页的特定内容。

连续抓取网页

到目前为止,我们已经可以抓取单个网页的内容了,现在让我们看看如何抓取整个网站的内容。我们知道网页之间是通过超链接互相连接在一起的,通过链接我们可以访问整个网络。所以我们可以从每个页面提取出包含指向其它网页的链接,然后重复的对新链接进行抓取。


通过以上几步我们就可以写出一个最原始的爬虫。在理解了爬虫原理的基础上,我们可以进一步对爬虫进行完善。

写过一个系列关于爬虫的文章:https://www.toutiao.com/i6567289381185389064/。感兴趣的可以前往查看。

Python基本环境的搭建,爬虫的基本原理以及爬虫的原型

Python爬虫入门(第1部分)

如何使用BeautifulSoup对网页内容进行提取

Python爬虫入门(第2部分)

爬虫运行时数据的存储数据,以SQLite和MySQL作为示例

Python爬虫入门(第3部分)

使用selenium webdriver对动态网页进行抓取

Python爬虫入门(第4部分)

讨论了如何处理网站的反爬虫策略

Python爬虫入门(第5部分)

对Python的Scrapy爬虫框架做了介绍,并简单的演示了如何在Scrapy下进行开发

Python爬虫入门(第6部分)


壹瓜壹果


答案:很明显,用手和大脑做。[狗头]

上面抖了个机灵,下面会详细回答,告诉你当前主流python爬虫应该怎么做。

爬虫是啥

先给不懂的小朋友简单科普下,爬虫是啥,毕竟看到这个问题的小伙伴不一定懂什么是爬虫。

爬虫本身其实很复杂,高端的有百度的“蜘蛛”,需要非常恐怖的代码量,算法。低端的只要几行代码就能够搞定。

这边举一个不是很严谨的例子,不过应该能够帮助各位小伙伴了解什么是爬虫。

举个例子:

批量下载!我们平时网上看到一张好看的图,我们会右键点击保存下来,如果看到非常多好看的图,我们需要经过大量重复操作。

但是使用爬虫,就很方便,定义好规则,就能够批量给你下载下来。

最关键的是,很多不允许你保存和下载的图片,爬虫也能够抓取,下载下来,这就是爬虫厉害的地方。

专业的事情,交给专业的人,同样,爬取,抓取这种事情,就交给爬虫去做。

爬虫怎么做

爬虫要怎么做呢?我注意到你问的是Python爬虫怎么做。

很简单,你可以学一下python,如果你不想学,那也可以。

这边有100个案例python 的爬虫案例,代码都写好了,你只要替换一些东,就可以了。

私信w3cschool回复“python”就可以获得下面100多个源码。

当然,这边小编还是建议一下各位小伙伴学习一下python,毕竟python目前是公认的最简单的编程语言,甚至没有之一。

而且python的强大还在于数据分析,大数据,人工智能等领域。

仔细想想,你爬取到知乎一大堆大V的数据,然后用python做数据分析,就能够得到非常多有用的信息,这是一件多么棒的事情。

目前w3cschool有在头条号的付费专栏里面,上传python的入门视频教程,各位小伙伴如果有兴趣,可以去试学~


编程狮APP


爬虫讲的简单一点,就是通过一个程序去网络上抓取所需要的资源。

这些资源包括:html、json、xml等等不同的格式。然后再把这些资源转换成可存储,可用,可分析或者有价值的数据。


想要学习爬虫python的话首先你要懂得最基本的编程语言使用、网络基本知识以及HTML文档、css。


只是入门的话

网络这块只需要懂得HTTP协议,懂得使用工具来抓包。要熟悉json格式数据。

HTML和CSS需要有个了解,知道常用标签。

python需要你学完基础部分。比如:

  • 变量
  • 数据类型
  • 循环判断
  • 迭代器
  • 函数
  • 面向对象
  • 常用包的使用

爬虫的话推荐使用:

  • requests
  • lxml
  • BeautifulSoup


requests 就是一个网络请求库,用来获取网络上的资源。

lxml 是一个HTML文档解析器。主要用来分析html文档。

BeautifulSoup 是一个很好用的工具,它可以很方便的通过一些方法或者属性来对各种文档来进行分析。


下面是一个很入门的爬虫案例:



前几天刚写的抓取网易新闻,总共也就几个函数。

主要包括:

  • 分析url
  • 分析页面
  • 获取新闻
  • 保存新闻



写完这个案例之后又总结了一下 BeautifulSoup 的使用。感兴趣的可以来看看。



有问题欢迎评论指出哦!


后端漫谈


Python 爬虫怎么做?


这是一个长期学习的过程,这里有一个系列的教程,还在持续更新中,如果感兴趣的可以看看。


原文:https://github.com/TwoWater/Python


IT 行业相对于一般传统行业,发展更新速度更快,一旦停止了学习,很快就会被行业所淘汰,但是,我们要清楚:淘汰的永远只是那些初级水平的从业者,过硬技术的从业者永远都是稀缺的。因此对于学习,我们还是要踏踏实实的。


自学 Python ,也是一样,不要一开始因为头脑发热就不停地收藏各种资料网站,购买各种书籍,下载了大量的教学视频,过了几天,学习的热情开始褪去,再过几个星期,终于完成了学习课程 —— 《从入门到放弃》。所以,学习 Python 需要一步一个脚印,踏踏实实地学。


FQ


在讲 Python 如何入门之前,个人建议最好每个人都有自己的 FQ 工具,多使用 Google 搜索,多去看一下墙外的世界,多看 Github 上的开源项目。


至于如何 FQ ,这里提供一下我用过的工具:FQ工具集「https://github.com/TwoWater/Python/blob/master/Res/FQ.md」


Python 学习资源集


相信很多人学习某门编程语言的时候,都会找各种学习资料。说句实话,资料太多,反而没用,根据自己的学习习惯,个人能力选择一门资源坚持学就好了。


因为每个人的需求不同,这里整理了一批 Python 比较好的学习资料:


  • Python 博客网站资源「https://github.com/TwoWater/Python/blob/master/Res/Python%E5%8D%9A%E5%AE%A2%E7%BD%91%E7%AB%99%E8%B5%84%E6%BA%90.md」
  • Python 视频教程资源「https://github.com/TwoWater/Python/blob/master/Res/Python%E5%8D%9A%E5%AE%A2%E7%BD%91%E7%AB%99%E8%B5%84%E6%BA%90.md」


Python 入门


对于入门,主要是掌握基本的语法和熟悉编程规范,因此大部分的教程基本一致的,所以还是建议选好适合自己的一个教程,坚持学下去。

在 Python 入门中,本人自己编写了一系列的 《 草根学 Python 》 博客, 是基于 Python 3.6 写的 Python 入门系列教程,为了更好的阅读,把它整理在 GitBook 上;如果 GitBook 访问慢,也可以到个人博客查阅:草根学 Python,希望对各位入门 Python 有所帮助。

主要目录如下:

  • Python代码规范
    • 简明概述
    • 注释
    • 命名规范
  • 第一个Python程序
    • Python 简介
    • Python 的安装
    • 第一个 Python 程序
    • 集成开发环境(IDE): PyCharm
  • 基本数据类型和变量
    • Python 语法的简要说明
    • Python 的基本数据类型
    • 基本数据类型转换
    • Python 中的变量
  • List 和 Tuple
    • List(列表)
    • tuple(元组)
  • Dict 和 Set
    • 字典(Dictionary)
    • set
  • 条件语句和循环语句
    • 条件语句
    • 循环语句
    • 条件语句和循环语句综合实例
  • 函数
    • Python 自定义函数的基本步骤
    • 函数传值问题
    • 函数返回值
    • 函数的参数
    • 匿名函数
  • 迭代器和生成器
    • 迭代
    • Python 迭代器
    • lsit 生成式(列表生成式)
    • 生成器
    • 迭代器和生成器综合例子
  • 模块与包
    • Python 模块简介
    • 模块的使用
    • 主模块和非主模块
    • 作用域
  • 面向对象
    • 面向对象的概念
    • 类的属性
    • 类的方法
    • 类的继承
    • 类的多态
  • Python 的 Magic Method
    • Python 的 Magic Method
    • 构造()和初始化()
    • 属性的访问控制
    • 对象的描述器
    • 自定义容器(Container)
    • 运算符相关的魔术方法
  • 枚举类
    • 枚举类的使用
    • Enum 的源码
    • 自定义类型的枚举
    • 枚举的比较
  • 元类
    • Python 中类也是对象
    • 使用 动态创建类
    • 什么是元类
    • 自定义元类
    • 使用元类
  • 线程与进程
    • 线程与进程
    • 多线程编程
    • 进程
  • 一步一步了解正则表达式
    • 初识 Python 正则表达式
    • 字符集
    • 数量词
    • 边界匹配符和组
    • re.sub
    • re.match 和 re.search
  • 闭包
  • 装饰器

知识点补漏

  • Python 关键字 yield

Python 进阶

  • 使用Python虚拟环境
  • Mac中使用virtualenv和virtualenvwrapper

Django

Python 下有许多款不同的 Web 框架。Django 是重量级选手中最有代表性的一位。许多成功的网站和 APP 都基于 Django。

如果对自己的基础有点信息的童鞋,可以尝试通过国外进行入门,这个教程讲的非常的详细,而且还有很多有趣的配图。不过可能因为墙的原因,很多人会访问不到,就算访问到了,也因为是英语的,不会进行耐心的阅读学习。因此我打算翻译这个教程。

  • 一个完整的初学者指南Django-part1
  • 一个完整的初学者指南Django-part2

后面经一个朋友说,这个教程已经有人在翻译了,因此我也不翻译了,不过感觉我的翻译还是挺好的,因为不是直译的,是通过了解后,用自己的语言再次表达出来。

这里有上面这个教程翻译计划的 Github 以及 博客,觉得哪个看得舒服,就选哪个进行学习。


stormzhang



对于小白来说,爬虫可能是一件非常复杂、技术门槛很高的事情。比如有的人认为学爬虫必须精通 Python,然后哼哧哼哧系统学习 Python 的每个知识点,很久之后发现仍然爬不了数据;有的人则认为先要掌握网页的知识,遂开始 HTMLCSS,结果入了前端的坑,瘁……

但掌握正确的方法,在短时间内做到能够爬取主流网站的数据,其实非常容易实现。但建议你从一开始就要有一个具体的目标,你要爬取哪个网站的哪些数据,达到什么量级。

那些所有你认为必须的前置知识,都是可以在完成目标的过程中学到的。这里给你一条平滑的、零基础快速入门的学习路径。

1.学习Python包并实现基本的爬虫过程

2.掌握各种技巧,应对特殊网站的反爬措施

3.学习scrapy,搭建工程化爬虫

4.学习数据库知识,应对大规模数据存储与提取

5.分布式爬虫,实现大规模并发采集

学习 Python 包并实现基本的爬虫过程

大部分爬虫都是按“发送请求——获得页面——解析页面——抽取并储存内容”这样的流程来进行,这其实也是模拟了我们使用浏览器获取网页信息的过程。

Python中爬虫相关的包很多:urllib、requests、bs4、scrapy、pyspider 等,建议从requests+Xpath 开始,requests 负责连接网站,返回网页,Xpath 用于解析网页,便于抽取数据。

如果你用过 BeautifulSoup,会发现 Xpath 要省事不少,一层一层检查元素代码的工作,全都省略了。这样下来基本套路都差不多,一般的静态网站根本不在话下,豆瓣、糗事百科、腾讯新闻等基本上都可以上手了。

掌握各种技巧,应对特殊网站的反爬措施

当然,爬虫过程中也会经历一些绝望,比如被封IP、比如各种奇怪的验证码、字体加密、userAgent访问限制、各种动态加载等等。

遇到这些反爬虫的手段,当然还需要一些高级的技巧来应对,常规的比如访问频率控制、使用代理IP池、字体反加密、抓包、验证码的OCR处理等等。

往往网站在高效开发和反爬虫之间会偏向前者,这也为爬虫提供了空间,掌握这些应对反爬虫的技巧,绝大部分的网站已经难不到你了。

学习 scrapy,搭建工程化的爬虫

掌握前面的技术一般量级的数据和代码基本没有问题了,但是在遇到非常复杂的情况,可能仍然会力不从心,这个时候,强大的 scrapy 框架就非常有用了。

scrapy 是一个功能非常强大的爬虫框架,它不仅能便捷地构建request,还有强大的 selector 能够方便地解析 response,然而它最让人惊喜的还是它超高的性能,让你可以将爬虫工程化、模块化。

学会 scrapy,你可以自己去搭建一些爬虫框架,你就基本具备爬虫工程师的思维了。

学习数据库基础,应对大规模数据存储

爬回来的数据量小的时候,你可以用文档的形式来存储,一旦数据量大了,这就有点行不通了。所以掌握一种数据库是必须的,学习目前比较主流的 MongoDB 就OK。

MongoDB 可以方便你去存储一些非结构化的数据,比如各种评论的文本,图片的链接等等。你也可以利用PyMongo,更方便地在Python中操作MongoDB。

因为这里要用到的数据库知识其实非常简单,主要是数据如何入库、如何进行提取,在需要的时候再学习就行。

分布式爬虫,实现大规模并发采集

爬取基本数据已经不是问题了,你的瓶颈会集中到爬取海量数据的效率。这个时候,相信你会很自然地接触到一个很厉害的名字:分布式爬虫。

分布式这个东西,听起来很恐怖,但其实就是利用多线程的原理让多个爬虫同时工作,需要你掌握 Scrapy + MongoDB + Redis 这三种工具。

Scrapy 前面我们说过了,用于做基本的页面爬取,MongoDB 用于存储爬取的数据,Redis 则用来存储要爬取的网页队列,也就是任务队列。

所以有些东西看起来很吓人,但其实分解开来,也不过如此。当你能够写分布式的爬虫的时候,那么你可以去尝试打造一些基本的爬虫架构了,实现更加自动化的数据获取。

- 如何高效学习 -

你看,这一条学习路径下来,你已然可以成为老司机了,非常的顺畅。所以在一开始的时候,尽量不要系统地去啃一些东西,找一个实际的项目(开始可以从豆瓣、小猪这种简单的入手),直接开始就好。

因为爬虫这种技术,既不需要你系统地精通一门语言,也不需要多么高深的数据库技术,高效的姿势就是从实际的项目中去学习这些零散的知识点,你能保证每次学到的都是最需要的那部分。

当然唯一麻烦的是,在具体的问题中,如何找到具体需要的那部分学习资源、如何筛选和甄别,是很多初学者面临的一个大问题。


Python花猫


谢邀~~关注极迭代,和小伙伴一起看↗↗↗
python的知名用途之一就是做爬虫,爬取各类网站的数据,以便进行进一步分析
根据爬取的难易不同,(网站封堵的力度大小),会有多种的爬取方式。

简单网站,直接使用页面请求

python将http请求发送给服务器,服务器返回网页内容
此时,就可以用python多线程的方式进行数据的抽取和分析、存储了

从获取的html页面中,或者api获取的json中,得到自己所需要的数据,然后存储到指定的数据库


用到的库主要为 :

  • http访问: requests模块、或urllib3库

  • 多线程:Thread、threadpool线程池,或者concurrent包里的ThreadPoolExecutor、或urllib3自带的PoolManager()

  • 文档处理: re 正则表达式、json模块

  • 数据存储:MySQL-python存储或者pymongo mongodb存储等等
进一步的,如果爬取量大,可以进行些简单的封装,让各个功能各司其职


比较正式的爬虫系统,可以用python框架Scrapy

Scrapy已经提供了一整套的机制,来减少自己搭建爬虫系统的难度。


被封堵的网站

网站封堵爬虫会有很多的不同的技术,并且这些技术都是在不断调整和完善的,网站有时也会修改界面或者接口,我们会经常会发现今天能爬取的网页,明天就不行了,这就需要经常检查和修复。
  • 简单的js封堵,可以通过代码分析,模拟逻辑来绕过

  • 复杂的验证码就需要用些图像识别库来进行识别了,如pytesser,然后填充和认证通过

  • 如果需要登录的网站,还可能需要用到selenium工具进行模拟输入的方式登录
最后,我们就能够下载到所需要的文章、图片、漫画、视频、数据等等


❤❤❤❤❤ 请任性点赞,谢谢关注  -- 我是 极迭代 ,我为自己带盐 :)


极迭代


\n

{!-- PGC_VIDEO:{"thumb_height": 360, "file_sign": "a8860ceb052eb3fce5ed7c8a1e0810fb\


分享到:


相關文章: