网络爬虫另外一些不常使用的名字还有蚂蚁,自动索引,模拟程序或者蠕虫。下面是小编为您整理的关于python爬虫能够干什么,希望对你有所帮助。

python爬虫能够干什么

1.python爬虫可从网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网站所有的网页都抓取完为止。如果把整个互联网当成一个网站,那么网络蜘蛛就可以用这个原理把互联网上所有的网页都抓取下来。

2.网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁,自动索引,模拟程序或者蠕虫。

爬虫的基本流程:

用户获取网络数据的方式:

方式1:浏览器提交请求--->下载网页代码--->解析成页面

方式2:模拟浏览器发送请求(获取网页代码)->提取有用的数据->存放于数据库或文件中

爬虫要做的就是方式2;

1、发起请求

使用http库向目标站点发起请求,即发送一个Request

Request包含:请求头、请求体等

Request模块缺陷:不能执行JS 和CSS 代码

2、获取响应内容

如果服务器能正常响应,则会得到一个Response

Response包含:html,json,图片,视频等

3、解析内容

解析html数据:正则表达式(RE模块),第三方解析库如Beautifulsoup,pyquery等

解析json数据:json模块

解析二进制数据:以wb的方式写入文件

4、保存数据

数据库(MySQL,Mongdb、Redis)

文件

三、http协议 请求与响应

Request:用户将自己的信息通过浏览器(socket client)发送给服务器(socket server)

Response:服务器接收请求,分析用户发来的请求信息,然后返回数据(返回的数据中可能包含其他链接,如:图片,js,css等)

ps:浏览器在接收Response后,会解析其内容来显示给用户,而爬虫程序在模拟浏览器发送请求然后接收Response后,是要提取其中的有用数据。

四、 request

1、请求方式:

常见的请求方式:GET / POST

2、请求的URL

url全球统一资源定位符,用来定义互联网上一个唯一的资源 例如:一张图片、一个文件、一段视频都可以用url唯一确定

url编码

https://www.baidu.com/s?wd=图片

图片会被编码(看示例代码)

网页的加载过程是:

加载一个网页,通常都是先加载document文档,

在解析document文档的时候,遇到链接,则针对超链接发起下载图片的请求

3、请求头

User-agent:请求头中如果没有user-agent客户端配置,服务端可能将你当做一个非法用户host;

cookies:cookie用来保存登录信息

Python爬虫常用的几种数据提取方式

python爬虫的几种数据提取方式:正则 ,bs4,pyquery,xpath,cssselector。

知识点:

findall 返回的结果是列表套元组的形式

而search一般要加group(), groups(),

re.S 可以将正则的搜索域不再是一行,而是整个HTML字符串

.*? 非贪婪匹配 .*贪婪匹配

二, Beautifulsoup

obj = BeautifulSoup(html, "lxml")

BeautifulSoup将复杂HTML文档转换成一个复杂的树形结构,每个节点都是Python对象

知识点:

获得标签的某个属性: .get()

获得标签内部的文字: .string . strings .stripped_strings .get_text()

.string: 如果一个标签里面没有标签了,那么 .string 就会返回标签里面的内容。如果标签里面只有唯一的一个标签了,那么 .string 也会返回最里面的内容

.strings: 获取多个内容,返回结果是生成器,需要遍历获取

.stripped_strings输出的字符串中可能包含了很多空格或空行,使用 .stripped_strings可以去除多余空白内容

通过css筛选元素: .select()

.select():返回的是list

遍历文档树:

获取tag的子节点: .contents 返回的是list .children返回的是listiterator object

PyQuery

爬虫是什么?

如果我们把互联网比作一张大的蜘蛛网,数据便是存放于蜘蛛网的各个节点,而爬虫就是一只小蜘蛛,

沿着网络抓取自己的猎物(数据)爬虫指的是:向网站发起请求,获取资源后分析并提取有用数据的程序;

从技术层面来说就是 通过程序模拟浏览器请求站点的行为,把站点返回的HTML代码/JSON数据/二进制数据(图片、视频) 爬到本地,进而提取自己需要的数据,存放起来使用。

python爬虫能干什么-总算发现python爬虫能够干什么相关推荐

  1. 爬虫python能做什么-总算发现python爬虫能够干什么

    网络爬虫另外一些不常使用的名字还有蚂蚁,自动索引,模拟程序或者蠕虫.下面是小编为您整理的关于python爬虫能够干什么,希望对你有所帮助. python爬虫能够干什么 1.python爬虫可从网站某一 ...

  2. python翻转课堂_总算发现如何运用翻转课堂用于数学教学

    如何运用翻转课堂用于数学教学?翻转课堂能够给予学生足够大的空间,让学生有足够的时间去寻找适合自己的学习方法.小学学生的自我约束能力稍弱,因此学生学习习惯的培养显得尤为重要,恰巧翻转课堂对培养学生的学习 ...

  3. python与人工智能编程-总算明白python人工智能编程入门案例

    Python是非常简洁的一种脚本语言,写同样的程序,代码量仅为java的三分一,除了性能没有Java强之外,它的优点还是相当多的.以下是小编为你整理的python人工智能编程入门案例 下载Active ...

  4. python入门代码示例-总算知道python入门代码示例

    Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.作为今年来越来越流行的语言,我们该如何学习或者转行学习Python呢,这里小迹为大家介绍如何入门学习Python.以下是小编为你整理 ...

  5. python快速入门答案-总算懂得python脚本快速入门教程

    PyQt5是基于Digia公司强大的图形程式框架Qt5的python接口,由一组python模块构成.PyQt5本身拥有超过620个类和6000函数及方法.在可以运行于多个平台.PyQt5拥有双重协议 ...

  6. python学习手册条件-总算晓得python学习手册正式版

    为了提高模块加载的速度,每个模块都会在__pycache__文件夹中放置该模块的预编译模块,命名为module.version.pyc,version是模块的预编译版本编码,一般都包含Python的版 ...

  7. python编程入门经典-总算理解python编程入门经典教程

    为了提高模块加载的速度,每个模块都会在__pycache__文件夹中放置该模块的预编译模块,命名为module.version.pyc,version是模块的预编译版本编码,一般都包含Python的版 ...

  8. 爬虫入门(一):爬虫简介

    哈喽,大家好,我是小爬虫,从今天开始,我们进入一个全新的领域--Python爬虫. 什么是爬虫?爬虫能干什么?如何学习爬虫?这将是我们这个系列文章主要解决的几个问题. 什么是爬虫 爬虫,也称网络爬虫, ...

  9. python一行代码_一行有效python代码

    完成同样的功能,尽量少写代码 伊始 今天跟大家分享几个有趣的kata,刚开始做这几个kata的时候,我也写了很长的代码才完成,随着后来对python的深入接触,发现python一些简单却十分强大的特性 ...

最新文章

  1. Java培训好不好?零基础可以学吗?
  2. platform平台工作原理
  3. python中分割字符串两种方法正则分组别名,如何在python中使用正则表达式模块将文本字符串分割成单词?...
  4. Qt Example各例子演示功能说明
  5. python2clock_控制fps的时钟Clock类源码
  6. easyui 点滴记录
  7. 《Python Cookbook 3rd》笔记(2.7):最短匹配模式
  8. framebuffer驱动详解3——framebuffer驱动分析(driver和device的配套查找)
  9. Flex-iframe在SWF中嵌入网页的组件(推荐)
  10. Mobile-LPR——面向移动端的准商业级车牌识别库
  11. js轮询导致服务器瘫痪_面试官:讲一下什么是负载均衡,什么是轮询策略随机策略哈希策略...
  12. ASP.NET工作笔记014---用VB.NET封装服务器端控件
  13. LED,LCD,OLED,miniLED,MicroLED显示详解
  14. Android SwipeRefreshLayout 实现下拉刷新2
  15. 3d打印 路径规划_在FDM 3D打印中优化刀具路径规划
  16. 川土微 | CA-IS3105W 全集成 DC-DC 转换器
  17. vue 一周日历展示,上一周下一周展示。
  18. GoldenGate Enterprise Manager Plug-In(12.1.0.3.0) 部署文档
  19. python中[::-1][1:2][1::2]的用法
  20. Excel复制单元格样式

热门文章

  1. dockerfile各种命令解析
  2. 吉他入门第一讲~~~~~右手弹奏基础
  3. 360浏览器使用评价
  4. 二者取其一(初遇)_网络流
  5. Python之operator库
  6. 离线地图解决方案(二):地图基本控制
  7. bzoj 1024 生日快乐
  8. Spark Streaming metadata checkpoint
  9. 建立你的第一个 Git 仓库
  10. #一周五# VS2015 CTP6, TFS2015 CTP1更新,老衣的开发工具汇总,2015 MVP 社区巡讲