Python 爬虫 day1

1、“大数据时代”,数据获取的方式

       1、企业生产的用户数据:大型互联网公司有海量用户,所以他们积累数据。

        2、数据管理咨询公司:数据采集团队,一般会通过市场调研。

        3、政府/机构 提供的公开数据:例如统计局。

        4、第三方数据平台购买数据, 

        5、爬虫爬取数据;

2、什么是爬虫?

        1、爬虫:抓取网页数据的程序

        2、爬虫怎么抓取网页数据:

             网页三大特征:

               1、每个网页都有自己的URL(统一资源定位符)来进行定位。

                2、网页都使用HTML(超文本标记语言)来描述网页信息。

                3、网页都是用HTTP/HTTPS(超文本传输协议)协议来传输HTML数据。

        3、爬虫的设计思路:

               1、首先都额定需要爬取的网页URL地址。

               2、通过HTTP/HTTP协议来获取对应的HTML页面。

               3、提取HTML页面里有用的数据:

                      a、如果是需要的数据,就保存起来。

                      b、如果是页面里的其他URL,那就继续执行第二步

3、为什么选择python做爬虫?

        可以做爬虫的语言有很多,如PHP、Java、C/C++、Python等等.....

        PHP:对多线程,异步不强。

        Java:网络爬虫生态圈很完善,是python爬虫最大对手,但是Java语言本身很笨重,重复成本高。

        C++:运行效率和性能几乎最强,但是学习成本高。

        python:语法优美,效率高,支持库多。强大的爬虫Scrapy,以及成熟搞笑的scrapy-redis分布式。

4、课程知识掌握:

        1、python的基础语法知识。

        2、如何抓取HTML页面:

                   HTTP请求的处理,urllib,rullib2,requests

                   处理后的请求可以模拟浏览器发送请求,获取服务器响应的文件。

        3、解析服务器去相应的内容

                   re、xpath、BeautifulSoup4(bs4)、jsonpath、pyquery等。

                   使用某种描述性一样来给我们需要提取的数定义一个匹配规则,符合这个规则的数据就会被匹配。

        4、如何采集动态HTML、验证码的处理

                   通用的动态页面采集:Selenium (自动化测试工具)+ PhantomJS(无界面浏览器)

                   Tesseract:机器学习库,机器图像识别系统,可以处理简单的验证码,复杂的验证码可以通过手动输入,打码平台。

        5、Scrapy框架:(Scrapy,Pyspider)

                   高定制性高性能(异步网络框架 twisted ),所以数据下载速度非常快,提供了数据存储、数据下载、提取规则。

        6、分布式策略:

                   scrapy redis,在Scrapy的基础上添加了一套以Redis数据库为核心的一套组件。

                   让Screpy框架支持分布式的功能,主要在Redis里做请求指纹去重、请求分配、数据临时存储。

        7、爬虫......反爬虫...........反反爬虫之间的斗争:

                   其实爬虫到最后,最头疼的不是复杂的页面,也是晦涩的数据,是和网站后台对抗。

                   User Agent 、代理、验证码、动态数据加载、加密数据。

                   数据价值  是否值的去费劲做发爬虫

                   机器成本 + 人力成本 > 数据价值,就不反了,一般做到封IP就结束了。

                   爬虫和反爬虫之间的斗争,最后一定是爬虫获胜。

                   只要是真实用户可以浏览的,都可以模拟。

5、通用爬虫   聚集爬虫

        通用爬虫:搜索引擎用的爬虫系统。

                  目标:就是尽可能把互联网上所有的网页下载下来,放到本地服务器里形成备份,

                            再对这些网页做相关处理(提取关键字、去掉广告),最后提供一个用户检索接口

                   抓取流程:

                             1、首选选取一部分已有的URL,把这些URL放到待爬取队列。

                             2、从队列里取出这些URL,然后解析DNS得到主机IP,然后去这个IP对应的服务器里下载HTML页面,保存到搜索                                    引擎的本地数据库里面,之后把这个爬过的URL放入已爬取列队。

                             3、分析这些页面内容,找出网页里其他URL连接,继续执行第二部,直到结束条件成立。

                  搜索引擎如何获取一个新网站的URL:

                             1、主动向搜索引擎提交网址:

                             2、在其他网站设置网站的外链。

                             3、搜索引擎和DNS服务商进行合作,可以快速收录新的网站。

                  通用爬虫并不是万物皆可爬,它也需要遵守规则:
                                Robots协议:协议会指明通用爬虫可以爬取网页的权限。

                                Robots.txt :并不是所有爬虫都遵守,一般只有大型的搜索引擎爬虫才会遵守。

                  通用爬虫工作流程:爬取网页---> 存储数据----->内容处理------->提供检索/排名服务

                  搜索引擎排名:

                                1、PageRank值:根据网站的流量(点击量/浏览量/人气)统计,流量越高

                                2、竞价排名

                  DNS:就是把域名解析成IP的一种技术,ping 网址 -t

                  通用爬虫的缺点:

                               1、只能提供和文本相关的内容(HTML、word),但是不能提供多媒体文件(音乐、图片、视频)和二进制                                              文件。

                               2、提供的结果千篇一律,不能针对不同背景领域的人提供不同的搜索结果

                               3、不能理解人类语义上的检索。

       聚集爬虫:爬虫程序员写的针对某种内容爬虫。

       面向主题爬虫,面向需求爬虫,会针对某种特定内容去爬取信息,而且会保证信息和需求尽可能相关。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


版权声明:本文为qq_23979811原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。