网络爬虫
文章平均质量分 82
lucky-zhao
这个作者很懒,什么都没留下…
展开
-
linux高级命令系列一
管道(|):一个命令的输出可以通过管道做为另一个命令的输入,可以理解成是一个容器,存放在终端显示的内容。当查看内容信息过长无法在一屏上显示时,可以使用 more 命令在终端分配显示文件内容。管道(|)一般结合 more 命令使用,主要是分配查看终端显示内容。重定向也称为输出重定向,把在终端执行命令的结果保存到目标文件。如果文件存在会追加写入文件末尾,相当于文件操作中的‘a’ 模式。如果文件存在会覆盖原有文件内容,相当于文件操作中的‘w’模式。能够使用重定向命令将终端显示内容重定向到文件。原创 2023-02-10 08:13:46 · 171 阅读 · 0 评论 -
crawler爬虫抓取数据
了解 crawler爬虫运行流程。原创 2023-02-09 08:18:16 · 883 阅读 · 0 评论 -
webapi代码实现&node_server节点任务调度
quart是基于Asyncio的Python微框架。它志在让开发者能够在Web开发中很容易地得到Asyncio带来的好处。它对Flask应用的支持最好,它和Flask拥有相同的API支持 HTTP/1.1,HTTP/2 和 Websockets扩展性很强,并支持很多Flask的扩展。原创 2023-02-09 08:16:06 · 345 阅读 · 0 评论 -
国家企业公示网项目分析
在输入企业名称点击查询后有可能会跳出验证图片,我们可以采取手动打码或使用第三方打码平台的方式来获取验证图片的点击坐标。数据量庞大,可以先保存数据的各个页面到本地,后续再进行提取。基于数据抓取的流程,可以确定项目代码所需要的组件。使用selenium控制浏览器进行抓取。演示运行效果,确定被抓取网站状态正常。使用redis作为消息总线。原创 2023-02-08 08:14:28 · 487 阅读 · 0 评论 -
测试运行以及完整代码
train_info_dict[‘shangwuzuo’] = urllib.parse.unquote(train_info_list[32]) # 商务座 # 展示。train_info_dict[‘yidengzuo’] = urllib.parse.unquote(train_info_list[31]) # 一等座 # 展示。train_info_dict[‘dongwo’] = urllib.parse.unquote(train_info_list[33]) # 动卧 # 展示。原创 2023-02-08 08:07:13 · 417 阅读 · 1 评论 -
预定订单初始化、解析用户信息以及坐席信息
1.1.14小节:城市/车站编码js文件有版本号。经过不断的抓包,尝试获取坐席类型的编码。原创 2023-02-07 07:59:41 · 269 阅读 · 0 评论 -
处理验证码并完成登陆
根据抓包过程完成前置cookie的获取;使用requests.session()自动处理cookie;用截图工具量取图片坐标(范围或单一坐标)原创 2023-02-07 07:54:56 · 234 阅读 · 0 评论 -
12306购票抓包分析以及任务分解
作用:订单初始化 获取REPEAT_SUBMIT_TOKEN 和 key_check_isChange。作用:获取订单结果,如果提示“网络传输过程中数据丢失,请查看未完成订单,继续支付!作用:提交订单,并获取持票未付款的人数,和车票的真实余数。作用:进入登陆页,获取cookie或行为验证。作用:获取cookies,检查用户是否登录。作用:获取cookies,获取登录二维码。作用:获取cookies,查询二维码状态。作用:获取cookies。作用:获取cookies。作用:获取cookies。原创 2023-02-06 08:08:05 · 947 阅读 · 0 评论 -
利用appium自动控制移动设备并提取数据
完成代码如下,并运行代码查看效果:如果模拟器中抖音app被启动,并打印出模拟设备的分辨率则成功。从(start_x, start_y)滑动到(end_x, end_y)实例化appium driver对象后添加如下代码,运行并查看效果。如图填写配置,并点击start session。在window的虚拟环境下执行。定位元素及获取其文本内容的方法。原创 2023-02-06 08:05:56 · 526 阅读 · 0 评论 -
crawlspider类的使用
crawlspider的作用:crawlspider可以按照规则自动获取连接crawlspider爬虫的创建:scrapy genspider -t crawl tencent hr.tencent.comcrawlspider中rules的使用:rules是一个元组或者是列表,包含的是Rule对象Rule表示规则,其中包含LinkExtractor,callback和follow等参数LinkExtractor:连接提取器,可以通过正则或者是xpath来进行url地址的匹配。原创 2023-02-05 13:56:48 · 441 阅读 · 0 评论 -
gerapy爬虫管理
Gerapy 是一款分布式爬虫管理框架,支持 Python 3,基于 Scrapy、Scrapyd、Scrapyd-Client、Scrapy-Redis、Scrapyd-API、Scrapy-Splash、Jinjia2、Django、Vue.js 开发,Gerapy 可以帮助我们:更方便地控制爬虫运行更直观地查看爬虫状态更实时地查看爬取结果更简单地实现项目部署更统一地实现主机管理。原创 2023-02-05 13:46:34 · 975 阅读 · 0 评论 -
scrapyd部署scrapy项目
scrapyd是一个用于部署和运行scrapy爬虫的程序,它允许你通过JSON API来部署爬虫项目和控制爬虫运行,scrapyd是一个守护进程,监听爬虫的运行和请求,然后启动进程来执行它们所谓json api本质就是post请求的webapi。原创 2023-02-04 14:21:00 · 998 阅读 · 0 评论 -
scrapy的日志信息与配置
LOG_FILE 设置log日志文件的保存路径,如果设置该参数,日志信息将写入文件,终端将不再显示,且受到LOG_LEVEL日志等级的限制。COOKIES_ENABLED 默认为True表示开启cookie传递功能,即每次请求带上前一次的cookie,做状态保持。DEFAULT_REQUEST_HEADERS 设置默认请求头,这里加入了USER_AGENT将不起作用。ITEM_PIPELINES 管道,左位置右权重:权重值越小,越优先执行。LOG_LEVEL 默认为DEBUG,控制日志的等级。原创 2023-02-04 14:19:02 · 1104 阅读 · 1 评论 -
scrapy_splash组件的使用
scrapy_splash是scrapy的一个组件scrapy-splash加载js数据是基于Splash来实现的。Splash是一个Javascript渲染服务。它是一个实现了HTTP API的轻量级浏览器,Splash是用Python和Lua语言实现的,基于Twisted和QT等模块构建。使用scrapy-splash最终拿到的response相当于是在浏览器全部渲染完成以后的网页源代码。splash官方文档 https://splash.readthedocs.io/en/stable/原创 2023-02-03 08:06:56 · 305 阅读 · 0 评论 -
scrapy_redis原理分析并实现断点续爬以及分布式爬虫
request的指纹不在集合中request的dont_filter为True,即不过滤start_urls中的url地址会入队,因为他们默认是不过滤。原创 2023-02-03 08:04:34 · 764 阅读 · 1 评论 -
scrapy_redis概念作用和流程
在前面scrapy框架中我们已经能够使用框架实现爬虫爬取网站数据,如果当前网站的数据比较庞大, 我们就需要使用分布式来更快的爬取数据。在scrapy_redis中,所有的待抓取的request对象和去重的request对象指纹都存在所有的服务器公用的redis中。所有的request对象存入redis前,都会通过该redis中的request指纹集合进行判断,之前是否已经存入过。所有的服务器中的scrapy进程公用同一个redis中的request对象的队列。在默认情况下所有的数据会保存在redis中。原创 2023-02-02 07:59:41 · 419 阅读 · 0 评论 -
scrapy中间件的使用
from Tencent.settings import USER_AGENTS_LIST # 注意导入路径,请忽视pycharm的错误提示# 不写returnreturn response # 不能少!'Tencent.middlewares.UserAgentMiddleware' : 543 , # 543是权重值 'Tencent.middlewares.CheckUA' : 600 , # 先执行543权重的中间件,再执行600的中间件 }原创 2023-02-02 07:57:02 · 712 阅读 · 1 评论 -
scrapy管道的使用
之前我们在scrapy入门使用一节中学习了管道的基本使用,接下来我们深入的学习scrapy管道的使用。继续完善wangyi爬虫,在pipelines.py代码中完善。在settings.py设置开启pipeline。原创 2023-02-01 07:49:50 · 396 阅读 · 0 评论 -
scrapy模拟登陆
但是通常使用scrapy.FormRequest()来发送post请求。注意:scrapy.FormRequest()能够发送表单和ajax请求,参考阅读 https://www.jb51.net/article/146769.htm。找到post的url地址:点击登录按钮进行抓包,然后定位url地址为https://github.com/session。找到请求体的规律:分析post请求的请求体,其中包含的参数均在前一次的响应中。测试账号 noobpythoner zhoudawei123。原创 2023-02-01 07:46:50 · 314 阅读 · 0 评论 -
scrapy构造并发送请求
创建项目scrapy startproject 项目名明确目标在items.py文件中进行建模创建爬虫3.1 创建爬虫scrapy genspider 爬虫名 允许的域3.2 完成爬虫修改start_urls检查修改allowed_domains编写解析方法保存数据在pipelines.py文件中定义对数据处理的管道在settings.py文件中注册启用管道。原创 2023-01-31 07:47:29 · 406 阅读 · 0 评论 -
scrapy的入门使用
定义一个管道类重写管道类的process_item方法process_item方法处理完item之后必须返回给引擎# 爬虫文件中提取数据的方法每yield一次item,就会运行一次# 该方法为固定名称函数。原创 2023-01-31 07:45:45 · 377 阅读 · 0 评论 -
scrapy的概念作用和工作流程
Scrapy 使用了Twisted['twɪstɪd]异步网络框架,可以加快我们的下载速度。少量的代码,就能够快速的抓取。原创 2023-01-30 07:54:19 · 331 阅读 · 0 评论 -
Mongodb的权限管理&mongodb和python交互
刚安装完毕的mongodb默认不使用权限认证方式启动,与MySQL不同,mongodb在安装的时候并没有设置权限,然而公网运行系统需要设置权限以保证数据安全,所以我们要学习mongodb的权限管理。在admin上创建python1用户,python1用户的权限有两个,一个再dbname1上的只读,另一个是在dbname2上的读写。结果是一个Cursor游标对象,是一个可迭代对象,可以类似读文件的指针,但是只能够进行一次读取。接收一个字典形式的条件,返回字典形式的整条数据。进入mongo shell。原创 2023-01-30 07:52:26 · 459 阅读 · 0 评论 -
mongodb的索引操作
在默认情况下mongdb的索引域的值是可以相同的,创建唯一索引之后,数据库会在插入数据的时候检查创建索引域的值是否存在,如果存在则不会插入该条数据,但是创建索引仅仅能够提高查询速度,同时降低数据库的插入速度。例如:在进行查询的时候如果字段1需要升序的方式排序输出,字段2需要降序的方式排序输出,那么此时复合索引的建立需要把字段1设置为1,字段2设置为-1。数据量巨大并且数据库的读出操作非常频繁的时候才需要创建索引,如果写入操作非常频繁,创建索引会影响写入速度。默认情况下_id是集合的索引。原创 2023-01-29 10:08:11 · 623 阅读 · 0 评论 -
mongodb的聚合操作
聚合(aggregate)是基于数据处理的聚合管道,每个文档通过一个由多个阶段(stage)组成的管道,可以对每个阶段的管道进行分组、过滤等功能,然后经过一系列的处理,输出相应的结果。正常情况在统计的不同性别的数据的时候,需要知道所有的name,需要逐条观察,如果通过某种方式把所有的name放到一起,那么此时就可以理解为数据透视。是所有聚合命令中用的最多的一个命令,用来将集合中的文档分组,可用于统计结果。用于进行数据的过滤,是在能够在聚合操作中使用的命令,和。统计男女生人数,按照人数升序,返回第二条数据。原创 2023-01-29 10:06:56 · 1213 阅读 · 0 评论 -
mongodb的增删改查
mongo shell 是一个js的执行环境使用$where 写一个函数, 返回满足条件的数据查询年龄大于30的学生})原创 2023-01-28 10:38:08 · 1484 阅读 · 0 评论 -
mongodb的安装及简单使用
了解 非关系型数据库的优势了解 mongodb的安装mongodb 是一个功能最丰富的NoSQL非关系数据库。由 C++ 语言编写。mongodb 本身提供S端存储数据,即server;也提供C端操作处理(如查询等)数据,即client。原创 2023-01-28 10:37:10 · 924 阅读 · 0 评论 -
爬虫之JS的解析
js2py是一个js的翻译工具,也是一个通过纯python实现的js的解释器,github上源码与示例。原创 2023-01-27 10:57:01 · 2076 阅读 · 0 评论 -
chrome在爬虫中的使用
了解 新建隐身窗口的目的了解 chrome中network的使用了解 寻找登录接口的方法。原创 2023-01-27 10:54:22 · 958 阅读 · 0 评论 -
打码平台的使用
Tesseract,一款由HP实验室开发由Google维护的开源OCR引擎,特点是开源,免费,支持多语言,多平台。项目地址:https://github.com/tesseract-ocr/tesseract。原创 2023-01-26 23:14:18 · 4713 阅读 · 0 评论 -
常见的反爬手段和解决思路
因为五月份交论文,所以嘛,大家都是读过书的,你们懂的,前期各种DotA,LOL,到了三月份了,来不及了,赶紧抓数据,四月份分析一下,五月份交论文,就是这么个节奏。就是说,他们根本爬不到任何数据,除了httpcode是200以外,一切都是不对的,可是爬虫依然不停止这个很可能就是一些托管在某些服务器上的小爬虫,已经无人认领了,依然在辛勤地工作着。这里会有拦截率的概念。通常来说,拦截率越高的反爬虫策略,误伤的可能性就越高。这个是最大的对手,他们有技术,有钱,要什么有什么,如果和你死磕,你就只能硬着头皮和他死磕。原创 2023-01-26 23:11:23 · 1547 阅读 · 0 评论 -
selenium的使用方法
在了解了隐式等待和显式等待以及强制等待后,我们发现并没有一种通用的方法来解决页面等待的问题,比如“页面需要滑动才能触发ajax异步加载”的场景,那么接下来我们就以。页面在加载的过程中需要花费时间等待网站服务器的响应,在这个过程中标签元素有可能还没有加载出来,是不可见的,如何处理这种情况呢?隐式等待针对的是元素定位,隐式等待设置了一个时间,在一段时间内判断元素是否定位成功,如果完成了,就进行下一步。selenium能够帮助我们处理页面中的cookie,比如获取、删除,接下来我们就学习这部分知识。原创 2023-01-25 12:12:21 · 417 阅读 · 0 评论 -
selenium的介绍
了解 selenium的工作原理了解 selenium以及chromedriver的安装掌握 标签对象click点击以及send_keys输入。原创 2023-01-25 12:03:02 · 578 阅读 · 0 评论 -
数据提取-jsonpath模块&lxml模块
如果有一个多层嵌套的复杂字典,想要根据key和下标来批量提取value,这是比较困难的。接下来我们就来了解一下xpath helper插件,它可以帮助我们练习xpath语法。对html或xml形式的文本提取特定的内容,就需要我们掌握lxml模块的使用和xpath语法。,无需操作上述的步骤2,直接将crx文件拖入已经开启开发者模式的chrome浏览器扩展程序界面。可以在chrome应用商城进行下载,如果无法下载,也可以从下面的链接进行下载。为例,获取所有城市的名字的列表,并写入文件。原创 2023-01-24 18:24:40 · 646 阅读 · 0 评论 -
数据提取-lxml模块系列二
利用etree.HTML,将html字符串(bytes类型或str类型)转化为Element对象,Element对象具有xpath的方法,返回结果的列表。将下面的html文档字符串中,将每个class为item-1的li标签作为1条新闻数据。从itcast的页面中,选择所有学科的名称、第一个学科的链接、最后一个学科的链接:http://www.itcast.cn/从itcast的页面中 http://www.itcast.cn/ ,选中全部的标签、全部的属性。来选取未知的html、xml的元素。原创 2023-01-24 18:23:55 · 405 阅读 · 0 评论 -
数据提取概述
在发送请求获取响应之后,可能存在多种不同类型的响应内容;而且很多时候,我们只需要响应内容中的一部分数据。xml是一种可扩展标记语言,样子和html很像,功能更专注于对传输和存储数据。要搞清楚html和xml的区别,首先需要我们来认识xml。可以使用re、lxml等模块来提取特定数据。xml字符串的例子如下。据,侧重点是为了显示。原创 2023-01-21 15:38:43 · 140 阅读 · 0 评论 -
requests模块系列三
requests模块中的Session类能够自动处理发送请求获取响应过程中产生的cookie,进而达到状态保持的目的。接下来我们就来学习它。原创 2023-01-21 15:31:54 · 92 阅读 · 0 评论 -
requests模块系列二
在打印的输出结果中搜索title,html中的标题文本内容如果是你的github账号,则成功利用headers参数携带cookie,获取登陆后才能访问的页面。在爬虫中,一个请求很久没有结果,就会让整个项目的效率变得非常低,这个时候我们就需要对请求进行强制要求,让他必须在特定的时间内返回结果,否则就报错。proxy代理参数通过指定代理ip,让代理ip对应的正向代理服务器转发我们发送的请求,那么我们首先来了解一下代理ip以及代理服务器。根据网站所使用的协议不同,需要使用相应协议的代理服务。原创 2023-01-20 15:10:30 · 456 阅读 · 1 评论 -
requests模块
requests文档。原创 2023-01-20 15:07:39 · 327 阅读 · 0 评论 -
爬虫概述&http协议复习
了解 爬虫的概念了解 爬虫的作用了解 爬虫的分类掌握 爬虫的流程。原创 2023-01-19 08:54:52 · 209 阅读 · 0 评论