北京号外科技-Python爬虫工程师

Word 2007工具栏不见了?功能区折叠与QAT隐藏排查指南 软件界面中工具栏的消失往往源于布局机制的变化,而不仅是简单的设置错误。以Office系列为例,Word 2007用Ribbon功能区取代了传统菜单栏和工具栏,导致“工具栏不见了”这一问题的表现和排查路径截然不同。理解功能区折叠、快速访问工具栏(QAT)自定义以及模板加载项的影响,能帮助用户快速定位故障。从双击标签、Ctrl+F1快捷键到清理Normal.dotm模板,再到加载项冲突排查,这套方法论也适用于其他大型软件的界面异常恢复。掌握这些通用技巧,即可从容应对Word 2007工具栏消失的各种场景。 阅读详情
1. 单引号、双引号、三引号的区别?

这几个符号都是可以表示字符串的,如果是表示一行,则用单引号或者双引号表示,它们的区别是:

  • 如果内容里有”符号,并且你用双引号表示的话则需要转义字符,而单引号则不需要。

  • 三单引号和三双引号也是表示字符串,并且可以表示多行,遵循的是所见即所得的原则。

  • 另外,三双引号和三单引号可以作为多行注释来用,单行注释用#号。

2. 如何在一个 function 里面设置一个全局变量?
使用 global 进行声明
3. 描述 yield 使用场景?
  • 生成器

  • 当有多个返回值的时候,用return全部裿返回了,需要单个逐一返回时,可以使用 yield

4. 生成 1~10 之间的整数?
# 1. 使用 range
for i in range(1, 11)

# 2. 使用生成器
(i for i in range(1, 11))
5. Python 如何生成缩略图?
import os
import glob
from PIL import Image

def thumbnail_pic(path):
    a=glob.glob(r'./*.jpg')
    for x in a:
            name=os.path.join(path,x)
        im=Image.open(name)
        im.thumbnail((80,80))
        print(im.format,im.size,im.mode)
        im.save(name,'JPEG')
    print('Done!')

if __name__=='__main__':
    path='.'
    thumbnail_pic(path)
6. 列出比较熟悉的爬虫框架,并简要说明?

(1) Scrapy框架:很强大的爬虫框架,可以满足简单的页面爬取(比如可以明确获知url pattern的情况)。用这个框架可以轻松爬下来如亚马逊商品信息之类的数据。但是对于稍微复杂一点的页面,如weibo的页面信息,这个框架就满足不了需求了。

(2) Crawley: 高速爬取对应网站的内容,支持关系和非关系数据库,数据可以导出为JSON、XML等

(3) Portia:可视化爬取网页内容

(4) newspaper:提取新闻、文章以及内容分析

(5) python-goose:java写的文章提取工具

(6) Beautiful Soup:名气大,整合了一些常用爬虫需求。缺点:不能加载JS。

(7) mechanize:优点:可以加载JS。缺点:文档严重缺失。不过通过官方的example以及人肉尝试的方法,还是勉强能用的。

(8) selenium:这是一个调用浏览器的driver,通过这个库你可以直接调用浏览器完成某些操作,比如输入验证码。

(9) cola:一个分布式爬虫框架。项目整体设计有点糟,模块间耦合度较高。

7. 列举常见的反爬技术,并给出应对方案?
1. Headers:

从用户的headers进行反爬是最常见的反爬虫策略。Headers(上一讲中已经提及) 是一种区分浏览器行为和机器行为中最简单的方法,还有一些网站会对 Referer (上级链接)进行检测(机器行为不太可能通过链接跳转实现)从而实现爬虫。

相应的解决措施:通过审查元素或者开发者工具获取相应的headers 然后把相应的headers传输给python的requests,这样就能很好地绕过。

2. IP 限制

一些网站会根据你的IP地址访问的频率,次数进行反爬。也就是说如果你用单一的 IP 地址访问频率过高,那么服务器会在短时间内禁止这个 IP访问。

解决措施:构造自己的 IP 代理池,然后每次访问时随机选择代理(但一些 IP 地址不是非常稳定,需要经常检查更新)。

3. UA限制

UA是用户访问网站时候的浏览器标识,其反爬机制与ip限制类似。

解决措施:构造自己的UA池,每次python做requests访问时随机挂上UA标识,更好地模拟浏览器行为。当然如果反爬对时间还有限制的话,可以在requests 设置timeout(最好是随机休眠,这样会更安全稳定,time.sleep())。

4.验证码反爬虫或者模拟登陆

验证码:这个办法也是相当古老并且相当的有效果,如果一个爬虫要解释一个验证码中的内容,这在以前通过简单的图像识别是可以完成的,但是就现在来讲,验证码的干扰线,噪点都很多,甚至还出现了人类都难以认识的验证码。

相应的解决措施:验证码识别的基本方法:截图,二值化、中值滤波去噪、分割、紧缩重排(让高矮统一)、字库特征匹配识别。(python的PIL库或者其他)

模拟登陆(例如知乎等):用好python requests中的session(下面几行代码实现了最简单的163邮箱的登陆,其实原理是类似的~~)。

import requests
s =requests.session()
login_data={"account":"   ","password":"  "}
res=s.post("http://mail.163.com/",login_data)
5.Ajax动态加载

网页的不希望被爬虫拿到的数据使用Ajax动态加载,这样就为爬虫造成了绝大的麻烦,如果一个爬虫不具备js引擎,或者具备js引擎,但是没有处理js返回的方案,或者是具备了js引擎,但是没办法让站点显示启用脚本设置。基于这些情况,ajax动态加载反制爬虫还是相当有效的。

Ajax动态加载的工作原理是:从网页的 url 加载网页的源代码之后,会在浏览器里执行JavaScript程序。这些程序会加载出更多的内容,并把这些内容传输到网页中。这就是为什么有些网页直接爬它的URL时却没有数据的原因。

处理方法:若使用审查元素分析”请求“对应的链接(方法:右键→审查元素→Network→清空,点击”加载更多“,出现对应的GET链接寻找Type为text/html的,点击,查看get参数或者复制Request URL),循环过程。如果“请求”之前有页面,依据上一步的网址进行分析推导第1页。以此类推,抓取抓Ajax地址的数据。对返回的json使用requests中的json进行解析,使用eval()转成字典处理(上一讲中的fiddler可以格式化输出json数据。

6.cookie限制

一次打开网页会生成一个随机cookie,如果再次打开网页这个cookie不存在,那么再次设置,第三次打开仍然不存在,这就非常有可能是爬虫在工作了。

解决措施:在headers挂上相应的cookie或者根据其方法进行构造(例如从中选取几个字母进行构造)。如果过于复杂,可以考虑使用selenium模块(可以完全模拟浏览器行为)。

8. 网络协议 http 和 https 区别?

HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从 WWW 服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。

HTTPS:是以安全为目标的 HTTP 通道,简单讲是 HTTP 的安全版,即 HTTP 下加入 SSL 层,HTTPS的安全基础是 SSL,因此加密的详细内容就需要 SSL。

HTTPS 协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。

9. 什么是 cookie,session 有什么区别?
  • 1、cookie 数据存放在客户的浏览器上,session 数据放在服务器上。

  • 2、cookie 不是很安全,别人可以分析存放在本地的 cookie 并进行 cookie 欺骗,考虑到安全应当使用 session。

  • 3、session 会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用 cookie。

  • 4、单个 cookie 保存的数据不能超过 4K,很多浏览器都限制一个站点最多保存 20 个 cookie。

  • 5、可以考虑将登陆信息等重要信息存放为 session,其他信息如果需要保留,可以放在 cookie 中。

10. Mysql 中 myisam 与 innodb 的区别?
1、 存储结构
  • MyISAM:每个 MyISAM 在磁盘上存储成三个文件。第一个文件的名字以表的名字开始,扩展名指出文件类型.frm 文件存储表定义。数据文件
    的扩展名为.MYD (MYData)。索引文件的扩展名是.MYI(MYIndex)。

  • InnoDB:所有的表都保存在同一个数据文件中(也可能是多个文件,或者是独立的表空间文件),

  • InnoDB 表的大小只受限于操作系统文件的大小,一般为 2GB。

2、 存储空间
  • MyISAM:可被压缩,存储空间较小。支持三种不同的存储格式:静态表(默认,但是注意数据末尾不能有空格,会被去掉)、动态表、压缩表。

  • InnoDB:需要更多的内存和存储,它会在主内存中建立其专用的缓冲池用于高速缓冲数据和索引。

3、 事务支持
  • MyISAM:强调的是性能,每次查询具有原子性,其执行数度比 InnoDB 类型更快,但是不提供事务支持。

  • InnoDB:提供事务支持事务,外部键等高级数据库功能。 具有事务(commit)、回滚(rollback)和崩溃修复能力(crash recovery capabilities)的事务安全(transaction-safe (ACID compliant))型表。

4、 CURD 操作
  • MyISAM:如果执行大量的 SELECT,MyISAM 是更好的选择。(因为没有支持行级锁),在增删的时候需要锁定整个表格,效率会低一些。相关的是 innodb 支持行级锁,删除插入的时候只需要锁定改行就行,效率较高

  • InnoDB:如果你的数据执行大量的 INSERT 或 UPDATE,出于性能方面的考虑,应该使用 InnoDB表。DELETE 从性能上 InnoDB 更优,但 DELETE FROM table 时,InnoDB 不会重新建立表,而是一行一行的删除,在 innodb 上如果要清空保存有大量数据的表,最好使用truncate table 这个命令。

5、 外键
  • MyISAM:不支持

  • InnoDB:支持

EPLAN新手必看:3分钟搞定自定义工具栏,效率翻倍不是梦 本文为EPLAN新手提供了详细的自定义工具栏指南,帮助用户快速提升工作效率。通过调整工具栏位置、自定义按钮内容和创建工作区配置,用户可以打造个性化的操作界面,减少视觉干扰并优化工作流程。文章还分享了针对不同项目类型的工具栏配置建议和团队标准化设置方法。 阅读详情

相关推荐

EPLAN新手必看:3分钟搞定自定义工具栏,效率提升50%

本文为EPLAN新手提供了一份高效自定义工具栏的完整指南。通过理解工具栏逻辑、进行基础布局调整、深度定制命令按钮以及保存专属工作区等步骤,用户可以显著缩短操作路径,告别繁琐操作,从而将工作效率提升高达50%。掌握自定义工具栏是释放EPLAN强大功能、打造个性化高效工作环境的关键。

jenkins8butler的博客 680

python工程师(web开发和爬虫方向)-面试经历

一、这家公司主要对亚马逊商品进行数据采集,问的问题比较杂。 是否了解线程的同步和异步? 是否了解网络的同步和异步? 链表和顺序表储存时各自有什么优点? 使用redis搭建分布式系统时如何处理网络延迟和网络异常? 数据仓库是什么? 假设有一个爬虫,从网络上获取数据的频率快,本地写入数据的频率慢,使用什么数据结构好? 你是否了解谷歌的无头浏览器? 你是否了解MySQL数据库的几种引擎? redis数据库

李谦的博客 3万+

EPLAN工具栏隐藏技巧:这样调整让你的绘图操作更顺手

本文详细介绍了EPLAN工具栏的隐藏与自定义技巧,帮助用户提升绘图效率。从临时隐藏到完全隐藏工具栏,再到按钮级微调和智能工具栏配置,这些技巧能让你的操作界面更加顺手。通过合理布局和快捷键设置,绘图效率可提升30%以上。

weixin_28475533的博客 261

哪种 Python 程序员最赚钱?

作者 |XksA责编|郭芮本文以Python爬虫、数据分析、后端、数据挖掘、全栈开发、运维开发、高级开发工程师、大数据、机器学习、架构师这10个岗位,从拉勾网上爬取...

优快云资讯 9742

ArcGIS Pro界面突然消失?5种常见工具栏找回方法(附图文步骤)

本文针对ArcGIS Pro用户常遇到的界面元素(如功能区、工具栏、窗格)突然消失的问题,提供了五种从易到难的找回方法。通过图文步骤详细讲解了如何利用“视图”菜单重置、命令搜索框精准定位、检查快速访问工具栏、应对视图切换与全屏模式,以及处理系统级显示异常,帮助用户快速恢复高效的工作流,解决操作界面“迷路”的困扰。

weixin_29209825的博客 750

[Qt]窗口-QMainWindow类-QMenuBar、QToolBar、QStatusBar、QDockWidget控件

本文聚焦于Qt框架中QMainWindow相关知识。开篇介绍QMainWindow类,随后详述其重要组成部分。菜单栏-QMenuBar控件,涵盖创建、添加菜单及选项、信号运用、快捷键设置等多方面操作与使用案例。接着阐述工具栏-QToolBar控件的使用方式,包括停靠、浮动、移动属性设定及案例。对状态栏-QStatusBar控件,说明了创建、信息添加、嵌套控件方法及示例。最后讲解浮动窗口-QDockWidget控件的使用,涉及停靠位置及添加多个控件的案例,全方位展示了QMainWindow的功能与应用。

m0_74207969的博客 1439

你的个人信息正暴露在互联网中!Python 爬虫获取 URP 教务系统学籍信息

原创文章,转载务必注明原文链接! 初衷 本文旨在提醒同学们及时修改密码,增强保护个人隐私的意识,因此代码中一些关键数据以及校名等信息不会公开!复制粘贴文章中的代码不会爬到任何东西。只是作为学习 Python 爬虫的一点总结而已! 作者所在学校的教务系统安全防范措施可谓非常不严密,学生登录甚至不需要图形验证码。每年学生入学之后,学校下发的账号,初始密码不是无规律的,而是和账号完全一致!如果学生不及...

weixin_34221276的博客 579

IntelliJ IDEA界面布局终极指南:如何自定义工具栏、目录栏提升开发效率

本文详细介绍了如何自定义IntelliJ IDEA的工具栏和目录栏,以显著提升开发效率。通过调整界面布局、创建专用工具栏、优化工具窗口停靠策略等方法,开发者可以打造个性化的开发环境。文章还涵盖了快捷键使用、主题优化和插件推荐,帮助用户最大化利用IntelliJ IDEA的功能。

weixin_42554151的博客 488

常见的反爬手段和解决思路

1.通过headers中的User-Agent字段来反爬 随机生成User-Agent: import random def get_ua(): first_num = random.randint(55, 62) third_num = random.randint(0, 3200) fourth_num = random.randint(0, 140) ...

huwei_1993的博客 3133

EPLAN工具栏隐藏功能大揭秘:从零开始打造个性化工作区

本文深入揭秘EPLAN工具栏的隐藏功能,指导用户从零开始打造个性化工作区。通过理解工具栏的模块化逻辑,详细演示了如何宏观增减、自由布局工具栏,并进行微观的命令按钮定制。重点介绍了利用“工作区”功能保存和切换不同布局的策略,并结合电气原理图设计等实战案例,帮助用户显著提升设计效率与操作专注度。

gin88的博客 477

AutoCAD 2020找回经典模式:菜单栏、工具栏完整恢复指南

AutoCAD 2020默认采用Ribbon功能区界面,而许多从旧版本升级的老用户更习惯传统的菜单栏与工具栏布局。理解“工作空间”的概念,就能明白它本质上是一套可随时切换的界面方案,菜单栏、工具栏、命令行、模型和布局选项卡这些组件并没有被删除,只是默认状态下被隐藏了。通过修改MENUBAR系统变量、手动调出常用工具栏、固定命令行位置,并在选项设置中开启布局选项卡,再将整套界面布局另存为命名工作空间,即可实现一键恢复经典界面。整个过程无需安装任何插件,也不涉及配置文件修改,完全依赖AutoCAD内置功能完成。

weixin_33966095的博客 359

博派通达-Python爬虫开发工程师

1. 解释什么是栈溢出,在什么情况下可能出现。 栈溢出是由于C语言系列没有内置检查机制来确保复制到缓冲区的数据不得大于缓冲区的大小, 因此当这个数据足够大的时候,将会溢出缓冲区的范围。 在Python中,函数调用是通过栈(stack)这种数据结构实现的, 每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。 由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出。...

PythonCodeZ的博客 1833

功能测试标准----按钮类

如果一个窗口或页面不能通过菜单,工具栏到达,而是必须通过前一个窗口完成才到达,应提供返回按钮或导航条让用户可以返回。Cancel按钮的等价按键通常是Esc,而选中按钮的等价按钮通常是Enter保持一致。不接受输入的信息,关掉窗口。取消时最好给予提示,尤其时有大量输入的窗口。如不满足查询条件则不显示,反之满足当前的查询条件则需显示新增的记录。返回到原记录所在页面;时,需给予只能对一条记录进行修改,默认为第一条的提示信息。当查询返回的结果大于默认的一页大小时,最好。接受输入的数据或显示的响应信息,关掉窗口。..

Skychina01的博客 551

Win10选中文字弹复制按钮怎么关?分场景关闭指南

在日常电脑操作中,选中文字后自动弹出复制按钮或浮动工具条,是很多用户都会遇到的交互现象。这并非Win10系统统一提供的功能,而是由Office、浏览器、输入法及剪贴板工具等多类软件各自实现的。理解其底层原理后,就可以按场景精准关闭:Office中的迷你工具栏需在选项的常规界面取消勾选;Edge浏览器的悬停菜单需在外观设置中关闭;OneNote的自动复制陷阱则藏在高级选项里。掌握这些设置技巧,能有效减少阅读和编辑时的视觉干扰,提升文档处理效率。无论是Word、Excel还是网页浏览,遵循概念、原理到应用场景的

weixin_33178839的博客 393

SecureCRT8.5界面布局全攻略:浮动窗口固定+菜单栏消失的终极解决方案

本文针对SecureCRT 8.5用户常见的界面布局问题,提供了深度解决方案。详细讲解了如何将浮动窗口(如会话管理器)精准归位,并快速找回消失的菜单栏。文章还指导用户自定义快捷键(如复制粘贴),以打造高效、稳定的个性化终端工作环境,显著提升运维和开发效率。

weixin_29291863的博客 394

Unity编辑器工具栏扩展:自定义工作流与效率提升实战

在Unity开发中,编辑器扩展是提升工作效率的核心技术之一。其原理在于利用Unity Editor的API与反射机制,允许开发者突破编辑器默认界面的限制,创建自定义工具与工作流。这项技术的价值在于能将重复性操作自动化、将分散功能集成化,从而显著减少上下文切换,尤其适用于大型项目或团队协作场景。通过工具栏扩展,开发者可以将常用脚本、资源管理工具或调试面板以按钮、下拉菜单等形式固定在编辑器顶部黄金区域,实现一键直达。本文以Unity Toolbar Extender为例,深入解析如何通过编辑器扩展与反射技术,构

weixin_30596165的博客 481

OriginPro 2023 新手必看:主界面工具栏保姆级详解与高效自定义指南

本文详细解析了OriginPro 2023主界面工具栏的六大功能区,包括数据准备、可视化绘图等核心工具,并提供了高效自定义指南。通过个性化工具栏设置和情境敏感布局方案,帮助新手快速掌握这一科研绘图与数据处理工具,提升工作效率。

weixin_28730131的博客 250

ArcGIS Pro界面定制与高效工作流

本文详细介绍了ArcGIS Pro界面定制与高效工作流的实用技巧,包括功能区深度定制、视图管理艺术、窗格智能组合和高级定制技巧。通过自定义功能区、快速访问工具栏和视图分区管理,用户可大幅提升工作效率。特别适合需要频繁切换工作场景的专业人士,帮助打造专属工具集和优化多屏协作方案。

weixin_30847865的博客 470
上一篇: 爬取网易财经中股票的历史交易数据
下一篇: TCP中的三次握手和四次挥手
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值