资讯专栏INFORMATION COLUMN

python爬虫入门(一)

lentrue / 1759人阅读

摘要:想办法区分爬虫程序和正常的用户。爬虫是工具性程序,对速度和效率要求较高。生态圈完善,是最大对手。最要命的是爬虫需要经常修改部分代码。爬虫分类通用爬虫也就是百度搜狐等搜索引擎。原本是为测试来测试网站的,后来成了爬虫工程师最喜爱的工具。

一、爬虫的基本知识:

1. 什么是爬虫

爬虫的英文翻译为spider或者crawder,意为蜘蛛或者爬行者,从字面意思我们可以体会到:爬虫就是把自己当做蜘蛛或者爬行者,沿着既定路线,爬到指定节点,猎取食物获取目标。在这里我们的蜘蛛网即互联网,我们爬取的方法即为路径,我们所要获取的数据即为食物或目标。

2. 爬虫的核心

爬取网页

解析数据

难点:与反爬虫博弈(反爬虫: 资源的所有者,想要保护资源,避免被第三方爬虫程序批量的把资源下载下去。想办法区分爬虫程序和正常的用户。)

3. 爬虫的语言

php:虽然是世界上最好的语言,但是天生不是干爬虫的命,PHP对多线程、异步支持不足,并发不足。爬虫是工具性程序,对速度和效率要求较高。

java:生态圈完善,是Python最大对手。但是Java本身很笨重,代码量大。重构成本比较高,任何修改都会导致大量代码的变动。最要命的是爬虫需要经常修改部分代码。

CC++:运行效率和性能几乎最强,但是学习成本非常高,代码成型较慢,能用C/C++写爬虫,说明能力很强,但是不是最正确的选择

Python:语法优美、代码简介、开发效率高、三方模块多,调用其他接口也方便。有强大的爬虫Scrapy,以及成熟高效的scrapy-redis分布式策略。

4. 爬虫分类

通用爬虫
也就是百度、Google、360、搜狐、firefox等搜索引擎。特点是爬取网站所有内容、但不能根据客户需求给出特定内容。在这里,各家浏览器根据其pagerank分进行网站搜索的排名,同时还有竞价排名。

聚焦爬虫
就是现在我们这些爬虫程序员所进行的工作,就是根据客户的需求,爬取指定网站的特定内容。

二、如何学习爬虫

1. 首先要理解什么是http/https协议

http协议:菜鸟教程:http协议详解

https协议:菜鸟教程:https协议详解

2. python基础知识

urllib.request

urllib.parse

正则表达式等等基础知识。

3. 开发工具

pacharm:下载安装请参考菜鸟教程:pycharm下载安装教程

sublime Text3:下载安装请参考菜鸟教程:sublime下载安装

4. 抓包工具

chrome浏览器的开发者模式,在这里可以检查网页的各种元素。

fiddler:原本是为测试来测试网站的,后来成了爬虫工程师最喜爱的工具。这是一款开源软件,可以直接去官网下载安装https://www.telerik.com/downl...

postman:可以根据请求头信息生成简单的网页爬取代码,界面相对于fiddler也要美观

motimproxy

三、代码实现简单的爬虫实例

python爬虫有多简单,下面我一行代码爬取百度首页,如同在浏览器输入网址一样简单

import urllib.request
urllib.request.urlretrieve("http://www.baidu.com/", "baidu.html")

上面的代码只能简单抓取网页,一旦遇到需要请求头的反爬虫时就不能发挥作用了,所以一般常用的爬虫代码如下:

    import urllib.request
    url = "http://www.baidu.com/"
    
    request = urllib.request.Request(url)
    
    response = urllib.request.urlopen(request)
    
    with open("baidu.html", "wb") as f:
        f.write(response.read())

请求头反反爬虫:

import urllib.request
#指定url
url = "https://www.qiushibaike.com/"
#定义请求头对象
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36"

}
#获取网页信息
request = urllib.request.Request(url, headers=headers)

response = urllib.request.urlopen(request)

with open("xiushi.html","wb") as f:
    f.write(response.read())

今天先写到这儿了,我争取做到每日分享,与大家一起学习,一起进步,为了美好的明天,艰苦奋斗。
                                                     ————你与别人的差距在加班的时间。


文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/42013.html

相关文章

  • 零基础如何学爬虫技术

    摘要:楚江数据是专业的互联网数据技术服务,现整理出零基础如何学爬虫技术以供学习,。本文来源知乎作者路人甲链接楚江数据提供网站数据采集和爬虫软件定制开发服务,服务范围涵盖社交网络电子商务分类信息学术研究等。 楚江数据是专业的互联网数据技术服务,现整理出零基础如何学爬虫技术以供学习,http://www.chujiangdata.com。 第一:Python爬虫学习系列教程(来源于某博主:htt...

    KunMinX 评论0 收藏0
  • Python爬虫学习路线

    摘要:以下这些项目,你拿来学习学习练练手。当你每个步骤都能做到很优秀的时候,你应该考虑如何组合这四个步骤,使你的爬虫达到效率最高,也就是所谓的爬虫策略问题,爬虫策略学习不是一朝一夕的事情,建议多看看一些比较优秀的爬虫的设计方案,比如说。 (一)如何学习Python 学习Python大致可以分为以下几个阶段: 1.刚上手的时候肯定是先过一遍Python最基本的知识,比如说:变量、数据结构、语法...

    liaoyg8023 评论0 收藏0
  • 首次公开,整理12年积累的博客收藏夹,零距离展示《收藏夹吃灰》系列博客

    摘要:时间永远都过得那么快,一晃从年注册,到现在已经过去了年那些被我藏在收藏夹吃灰的文章,已经太多了,是时候把他们整理一下了。那是因为收藏夹太乱,橡皮擦给设置私密了,不收拾不好看呀。 ...

    Harriet666 评论0 收藏0
  • 基于 Python 的 Scrapy 爬虫入门:页面提取

    摘要:目录基于的爬虫入门环境搭建基于的爬虫入门页面提取基于的爬虫入门图片处理下面创建一个爬虫项目,以图虫网为例抓取图片。 目录 基于 Python 的 Scrapy 爬虫入门:环境搭建 基于 Python 的 Scrapy 爬虫入门:页面提取 基于 Python 的 Scrapy 爬虫入门:图片处理 下面创建一个爬虫项目,以图虫网为例抓取图片。 一、内容分析 打开 图虫网,顶部菜单发现...

    willin 评论0 收藏0
  • 基于 Python 的 Scrapy 爬虫入门:环境搭建

    摘要:一基础环境由于不是职业的开发者,因此环境是基于的。二安装打开命令行工具创建虚拟环境,默认情况下会创建目录,所有的虚拟环境都会产生一个子目录保存在此,里面包含基本程序文件以及库文件。 目录 基于 Python 的 Scrapy 爬虫入门:环境搭建 基于 Python 的 Scrapy 爬虫入门:页面提取 基于 Python 的 Scrapy 爬虫入门:图片处理 作为一个全栈工程师(...

    Gu_Yan 评论0 收藏0

发表评论

0条评论

lentrue

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<