温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Python爬虫是什么

发布时间:2020-09-24 10:06:34 来源:亿速云 阅读:141 作者:Leah 栏目:编程语言

本篇文章给大家分享的是有关Python爬虫是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

一、什么是爬虫?

按照一定的规则编写程序,让其模拟人使用浏览器上网,自动抓取互联网中数据的过程,称之为爬虫。

二、爬虫分类:

通用网络爬虫:通用网络爬虫又称全网爬虫(Scalable Web Crawler),爬行整个 Web站点,主要为门户站点搜索引擎和大型 Web 服务提供商采集数据。 这类网络爬虫的爬行范围和数量大,对于爬行速度和存储空间要求较高。

通用网络爬虫的结构大致可以分为页面爬行模块 、页面分析模块、链接过滤模块、页面数据库、URL 队列、初始 URL 集合几个部分。为提高工作效率,通用网络爬虫会采取一定的爬行策略。 常用的爬行策略有:深度优先策略、广度优先策略。

聚焦网络爬虫:聚焦网络爬虫(Focused Crawler),又称主题网络爬虫(Topical Crawler),是指有选择性地爬取预先定义好的相关主题页面。 和通用网络爬虫相比,聚焦爬虫只需要爬行与主题相关的页面,极大地节省了硬件和网络资源 。

增量式网络爬虫:增量式网络爬虫(Incremental Web Crawler)是指对已下载网页采取增量式更新和只爬行新产生的或者已经发生变化网页的爬虫,它能够在一定程度上保证所爬行的页面是尽可能新的页面。 和周期性爬行和刷新页面的网络爬虫相比,增量式爬虫只会在需要的时候爬行新产生或发生更新的页面 ,并不重新下载没有发生变化的页面,可有效减少数据下载量,及时更新已爬行的网页,减小时间和空间上的耗费,但是增加了爬行算法的复杂度和实现难度。

Deep Web 爬虫:Web 页面按存在方式可以分为表层网页(Surface Web)和深层网页(Deep Web,也称 Invisible Web Pages 或 Hidden Web)。 表层网页是指传统搜索引擎可以索引的页面,以超链接可以到达的静态网页为主构成的 Web 页面。Deep Web 是那些大部分内容不能通过静态链接获取的、隐藏在搜索表单后的,只有用户提交一些关键词才能获得的 Web 页面。例如那些用户注册后内容才可见的网页就属于 Deep Web。

Deep Web 爬虫体系结构包含六个基本功能模块 (爬行控制器、解析器、表单分析器、表单处理器、响应分析器、LVS 控制器)和两个爬虫内部数据结构(URL 列表、LVS 表)。 其中 LVS(Label Value Set)表示标签/数值集合,用来表示填充表单的数据源。

三、requests模块基础使用

requests常用方法:

request():构造一个请求,支撑一下各种方法的基础方法

get():获取HTML网页的主要方法,对应于HTTP的GET

head():获取HTML网页头信息的方法,对应于HTTP的HEAD

post():向HTML网页提交OST请求的方法,对应于HTTP的POST请求

put():向HTML网页提交PUT请求的方法,对应于HTTP的PUT

patch():向HTML网页提交局部修改请求,对应于HTTP的PATCH

deleete():向HTML页面提交删除请求,对应于HTTP的DELETE

1、爬取百度页面

import requests
import os
BASE_PATH = os.path.abspath(os.path.dirname(__file__))
BASE_PATH = os.path.join(BASE_PATH,'html')
file_name = os.path.join(BASE_PATH,'demo.html')
url = 'https://www.baidu.com/s?wd=python'
headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.
    3729.131 Safari/537.36'
}
response = requests.get(url=url,headers=headers)
response.encoding = response.apparent_encoding  
with open(file_name,mode='w',encoding='utf-8') as f:
    f.write(response.text)

2、获取KFC北京的位置信息

import requests
url = 'http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=keyword'
headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.
    3729.131 Safari/537.36'
}
for i in range(1,8):
    data = {
        "cname":"",
        "pid":"",
        "keyword": "北京",
        "pageIndex": i,
        "pageSize": '10'
    }
    response = requests.post(url,headers=headers,data=data).json()
    print(f'第{i}页')
    for j in response.get('Table1'):
        print(j['addressDetail'])

以上就是Python爬虫是什么,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI