随笔分类 -  Python爬虫

1
摘要:前言:这算是一个比较综合的案例,理清了该案例会感到最近学的知识变的很条例、很清晰。需求是爬取五大板块对应的新闻标题以及每个标题对饮的新闻内容。 (一)分析网易页面 对于首页,通过定位发现每个板块都是嵌套在<ul>中,以单独的<li>存在。 点击每个板块,进去后发现页面是这样加载的: 说明每个板块的新 阅读全文
posted @ 2022-01-29 10:31 Sunshine_y 阅读(321) 评论(0) 推荐(1) 编辑
摘要:请求传参 使用场景:如果解析的数据不在同一个页面中(深度爬取)。 举个例子:假如我们首先爬取了首页数据,然后再解析详情页数据,如何操作? 1 # 解析首页的岗位名称 2 def parse(self, response): 3 li_list = response.xpath('//*[@id="m 阅读全文
posted @ 2022-01-27 21:19 Sunshine_y 阅读(138) 评论(0) 推荐(0) 编辑
摘要:先说明一下五大组件各自的作用: 引擎(Scrapy) 用来完成整个系统的数据流处理,触发事务(框架核心)。 调度器(Scheduler) 包括两部分:过滤器和队列,用来接受引擎发过来的请求,先经过过滤器对请求进行去重,然后压入队列中,可以想像成一个URL(抓取网页的网址或者说是链接)的优先队列,由它 阅读全文
posted @ 2022-01-26 16:40 Sunshine_y 阅读(372) 评论(0) 推荐(0) 编辑
摘要:方法一:基于终端指令 说明:只可以将parse()的返回值存储到本地的文件中,而且存储的文本文件的类型只能为:'json', 'jsonlines', 'jl', 'csv', 'xml', 'marshal', 'pickle' 指令:终端输入命令,scrapy crawl xxx -o file 阅读全文
posted @ 2022-01-26 16:25 Sunshine_y 阅读(47) 评论(0) 推荐(0) 编辑
摘要:环境的安装 — mac 和 Linux的不要太轻松,直接:pip install scrapy — windows相比而言可是麻烦不少,分以下几部分安装: (1)pip install wheel (2)下载Twisted,下载地址为 http://www.lfd.uci.edu/~gohlke/p 阅读全文
posted @ 2022-01-25 09:57 Sunshine_y 阅读(299) 评论(0) 推荐(0) 编辑
摘要:携程旅行实现自动登录还是有点麻烦的,我们先看官网: 不用多说,肯定需要先进行标签定位,定位到红框处,通过click()实现跳转,来到了下面的页面: 这里的话,先标签定位到输入用户名和密码的地方,然后通过send_keys()可以输入用户名和密码,这里很简单,然后定位到滑块,定义个动作链,再通过cli 阅读全文
posted @ 2022-01-24 17:18 Sunshine_y 阅读(637) 评论(0) 推荐(0) 编辑
摘要:selenium处理iframe - 如果定位的标签存在于iframe标签之中,则必须使用switch_to.frame(id) - 动作链(拖动):from selenium.webdriver import ActionChains - 实例化一个动作链对象:action = ActionCha 阅读全文
posted @ 2022-01-23 16:32 Sunshine_y 阅读(93) 评论(0) 推荐(0) 编辑
摘要:selenium模块简单介绍 selenium是基于浏览器自动化的一个模块,可以便捷的获取网站中的动态加载数据,便捷的实现模拟登录。 使用流程 1、下载一个浏览器的驱动程序(笔者下载的是谷歌驱动程序) 玩什么浏览器就下载什么样的驱动程序,下载路径与驱动程序和浏览器版本对应关系的链接如下: http: 阅读全文
posted @ 2022-01-23 12:47 Sunshine_y 阅读(504) 评论(0) 推荐(0) 编辑
摘要:结合了前两部分学习的内容,今天来模拟一下向多个url发起请求,话不多说直接放代码(为了控制每个url请求的时间,向自己写的Flask服务器发送请求): # -*- coding:utf-8 -*- # @Time : 2022/1/22 0022 9:52 # @Author : Tzy0425 # 阅读全文
posted @ 2022-01-22 10:41 Sunshine_y 阅读(122) 评论(0) 推荐(0) 编辑
摘要:单任务异步协程: event_loop:事件循环,相当于一个无限循环,可以把一些函数注册到这个事件循环上,当满足某些条件时,函数就会被循环执行。 coroutine:协程对象,可以将协程对象注册到事件循环中,它就会被事件循环所调用,可以使用async关键字来定义一个方法,该方法在调用时不会立即被执行 阅读全文
posted @ 2022-01-21 19:20 Sunshine_y 阅读(32) 评论(0) 推荐(0) 编辑
摘要:高性能异步爬虫 目的:在爬虫中使用异步实现高性能的数据爬取操作 单线程下以串行方式模拟发送请求,程序运行时间: 不难发现,程序中的get_content是一个阻塞的方法,当且仅当,当前URL响应成功后,才能对下一个URL发起请求,因此造成了较长的运行时间。 异步爬虫的方式: 1、多线程,多进程(不建 阅读全文
posted @ 2022-01-21 10:26 Sunshine_y 阅读(68) 评论(0) 推荐(0) 编辑
摘要:模拟登录目的: 爬取某些用户的用户信息。 需求说明: 对古诗词网进行模拟登录。 编码流程: 爬取首页数据,获取验证码信息并保存 通过超级鹰对验证码进行自动识别 点击登录后获取到登录页面的URL,模拟对登录页面发起post请求,参数中携带验证码(动态变化的) 直接献上代码: # @Time : 202 阅读全文
posted @ 2022-01-20 11:43 Sunshine_y 阅读(445) 评论(0) 推荐(0) 编辑
摘要:xpath解析:最常用且最便捷高效的一种解析方式,首选。 xpath解析原理: 实例化一个etree对象,并将需要被解析的页面源码数据加载到该对象当中 调用etree对象中的xpath方法结合着xpath表达式实现标签的定位和内容的捕获 如何实例化一个etree对象:from lxml import 阅读全文
posted @ 2022-01-18 11:15 Sunshine_y 阅读(307) 评论(0) 推荐(0) 编辑
摘要:选择器bs4进行数据解析: 数据解析的原理:首先进行标签定位,然后进行提取标签以及标签属性中存储的数据 bs4数据解析的原理:首先实例化一个BeautifulSoup对象,并将页面源码数据加载到该对象中,然后通过调用BeautifulSoup对象中相关的属性和方法进行标签定位和数据提取 环境安装:b 阅读全文
posted @ 2022-01-17 20:06 Sunshine_y 阅读(890) 评论(0) 推荐(0) 编辑
摘要:聚焦爬虫的编码流程: 指定url - 发起请求 - 获取响应数据 - 数据解析 - 持久化存储 原理概述: 因为解析的局部数据都在标签之间或者是标签对应的属性中进行存储,所以首先要进行指定标签的定位,然后对标签或者标签对应的属性中存储的数据进行提取(解析)。 先以一个正则提取图片地址的例子引入: 假 阅读全文
posted @ 2022-01-17 12:10 Sunshine_y 阅读(63) 评论(0) 推荐(0) 编辑
摘要:在爬取数据时,我们首先需要通过F12抓包观看它的请求方式、响应数据格式与内容等,一般情况下,可以在响应数据中看到该页面完整的内容,但有时存在其它情况,就是在刷新页面后,发现抓取到的数据只是当前页面的一部分数据,说明没有展现出来的数据很可能是动态加载的,那么这种情况我们肯定不能直接对当前URL发出请求 阅读全文
posted @ 2022-01-16 17:43 Sunshine_y 阅读(1000) 评论(0) 推荐(0) 编辑
摘要:以百度翻译为例: 用过百度翻译的小伙伴们都知道,在输入需要翻译的内容后,页面只会刷新翻译框下面的内容,并不会刷新整个页面,因此这种情况使用的是ajax,打开抓包工具,如下: 我们选中XHR后,可见该请求是POST类型,于是爬虫程序需要编写为POST型,此外还需要注意返回的响应数据为JSON格式。 然 阅读全文
posted @ 2022-01-15 22:19 Sunshine_y 阅读(342) 评论(0) 推荐(1) 编辑
摘要:首先,介绍一种反爬机制:UA检测(User-Agent:请求载体的身份标识): 门户网站的服务器会检测对应请求的载体身份标识,如果到该请求的UA为某浏览器,则说明该请求是正常的请求,允许访问;反之,若检测到不是某浏览器(UA只会有两种,浏览器和爬虫),则说明该请求是不正常的,可能会拒绝访问。 那么, 阅读全文
posted @ 2022-01-15 11:28 Sunshine_y 阅读(422) 评论(1) 推荐(0) 编辑
摘要:requests模块:python中原生的一款基于网络请求的模块,作用是模拟浏览器发送请求。如何使用: 指定url - 发起请求 - 获取响应数据 - 持久化存储实战需求:爬取搜狗首页的页面数据 import requests if __name__ == "__main__": # 指定url u 阅读全文
posted @ 2022-01-15 09:59 Sunshine_y 阅读(36) 评论(0) 推荐(0) 编辑
摘要:爬虫在应用场景中的分类 (1)通用爬虫:抓取系统重要组成部分,抓取的是一整张页面数据。 (2)聚焦爬虫:建立在通用爬虫的基础上,抓取的是页面中的特定内容。 (3)增量式爬虫:检测网站中的更新情况,只会抓取网站中最近更新的内容。 反爬机制 门户网站可以制定相应的策略或者技术手段,防止爬虫程序进行网站数 阅读全文
posted @ 2022-01-14 21:43 Sunshine_y 阅读(54) 评论(0) 推荐(0) 编辑

1