摘要:
结合了前两部分学习的内容,今天来模拟一下向多个url发起请求,话不多说直接放代码(为了控制每个url请求的时间,向自己写的Flask服务器发送请求): # -*- coding:utf-8 -*- # @Time : 2022/1/22 0022 9:52 # @Author : Tzy0425 # 阅读全文
摘要:
单任务异步协程: event_loop:事件循环,相当于一个无限循环,可以把一些函数注册到这个事件循环上,当满足某些条件时,函数就会被循环执行。 coroutine:协程对象,可以将协程对象注册到事件循环中,它就会被事件循环所调用,可以使用async关键字来定义一个方法,该方法在调用时不会立即被执行 阅读全文
摘要:
高性能异步爬虫 目的:在爬虫中使用异步实现高性能的数据爬取操作 单线程下以串行方式模拟发送请求,程序运行时间: 不难发现,程序中的get_content是一个阻塞的方法,当且仅当,当前URL响应成功后,才能对下一个URL发起请求,因此造成了较长的运行时间。 异步爬虫的方式: 1、多线程,多进程(不建 阅读全文
摘要:
模拟登录目的: 爬取某些用户的用户信息。 需求说明: 对古诗词网进行模拟登录。 编码流程: 爬取首页数据,获取验证码信息并保存 通过超级鹰对验证码进行自动识别 点击登录后获取到登录页面的URL,模拟对登录页面发起post请求,参数中携带验证码(动态变化的) 直接献上代码: # @Time : 202 阅读全文
摘要:
xpath解析:最常用且最便捷高效的一种解析方式,首选。 xpath解析原理: 实例化一个etree对象,并将需要被解析的页面源码数据加载到该对象当中 调用etree对象中的xpath方法结合着xpath表达式实现标签的定位和内容的捕获 如何实例化一个etree对象:from lxml import 阅读全文
摘要:
选择器bs4进行数据解析: 数据解析的原理:首先进行标签定位,然后进行提取标签以及标签属性中存储的数据 bs4数据解析的原理:首先实例化一个BeautifulSoup对象,并将页面源码数据加载到该对象中,然后通过调用BeautifulSoup对象中相关的属性和方法进行标签定位和数据提取 环境安装:b 阅读全文
摘要:
聚焦爬虫的编码流程: 指定url - 发起请求 - 获取响应数据 - 数据解析 - 持久化存储 原理概述: 因为解析的局部数据都在标签之间或者是标签对应的属性中进行存储,所以首先要进行指定标签的定位,然后对标签或者标签对应的属性中存储的数据进行提取(解析)。 先以一个正则提取图片地址的例子引入: 假 阅读全文
摘要:
在爬取数据时,我们首先需要通过F12抓包观看它的请求方式、响应数据格式与内容等,一般情况下,可以在响应数据中看到该页面完整的内容,但有时存在其它情况,就是在刷新页面后,发现抓取到的数据只是当前页面的一部分数据,说明没有展现出来的数据很可能是动态加载的,那么这种情况我们肯定不能直接对当前URL发出请求 阅读全文
摘要:
以百度翻译为例: 用过百度翻译的小伙伴们都知道,在输入需要翻译的内容后,页面只会刷新翻译框下面的内容,并不会刷新整个页面,因此这种情况使用的是ajax,打开抓包工具,如下: 我们选中XHR后,可见该请求是POST类型,于是爬虫程序需要编写为POST型,此外还需要注意返回的响应数据为JSON格式。 然 阅读全文
摘要:
首先,介绍一种反爬机制:UA检测(User-Agent:请求载体的身份标识): 门户网站的服务器会检测对应请求的载体身份标识,如果到该请求的UA为某浏览器,则说明该请求是正常的请求,允许访问;反之,若检测到不是某浏览器(UA只会有两种,浏览器和爬虫),则说明该请求是不正常的,可能会拒绝访问。 那么, 阅读全文