此题为判断题(对,错)。
A.ROBOTSTXT_OBEY
B.ROBOTSTXT_JUDGE
C.ROBOTSTXT
D.ROBOTSTXT_IF
此题为判断题(对,错)。
A.如果要修改静态网页,必须修改源代码
B.后缀为.htm、.html的网页是静态网页
C.静态网页文件里没有程序代码,只有HTML标记
D.静态网页可以根据用户的需要而改变
A、深度优先策略
B、广度优先策略
C、PageRank优先策略
D、随机爬行策略
北京同城必应科技有限公司9月招聘面试题面试题面试官常问到的一些题目整理如下:问题 Q1:urllib 和 urllib2 的区别?可用的回答 : urllib 和urllib2都是接受URL请求的相关模块, 但是urllib2可以接受一个Request类的实例来设置URL请求的headers, urllib仅可以接受URL。urllib不可以伪装你的User-Agent字符串。 urllib提供urlencode()方法用来GET查询字符串的产生,而urllib2没有。 这是为何urllib常和urllib2一起使用的原因。 问题 Q2:如果让你来防范网站爬虫,你应该怎么来提高爬取的难度?可用的回答 : 1. 判断headers的User-Agent; 2. 检测同一个IP的访问频率; 3. 数据通过Ajax获取; 4. 爬取行为是对页面的源文件爬取,如果要爬取静态网页的html代码,可以使用jquery去模仿写html。 问题 Q3:在Python中切片是什么?可用的回答 :从序列类型(如列表,元组,字符串等)中选择一系列项目的机制称为切片。问题 Q4:urllib 和 urllib2 的区别?可用的回答 : urllib 和urllib2都是接受URL请求的相关模块, 但是urllib2可以接受一个Request类的实例来设置URL请求的headers, urllib仅可以接受URL。urllib不可以伪装你的User-Agent字符串。 urllib提供urlencode()方法用来GET查询字符串的产生,而urllib2没有。 这是为何urllib常和urllib2一起使用的原因。 问题 Q5:什么是arp协议?可用的回答 : ARP(Address Resolution Protocol)即地址解析协议, 用于实现从 IP 地址到 MAC 地址的映射,即询问目标IP对应的MAC地址。 问题 Q6:你常用的mysql引擎有哪些?各引擎间有什么区别?可用的回答 : 主要 MyISAM 与 InnoDB 两个引擎,其主要区别如下: 一、 InnoDB 支持事务,MyISAM 不支持,这一点是非常之重要。 事务是一种高级的处理方式,如在一些列增删改中只要哪个出错还可以回滚还原,而 MyISAM就不可以了; 二、 MyISAM 适合查询以及插入为主的应用,InnoDB 适合频繁修改以及涉及到安全性较高的应用; 三、 InnoDB 支持外键,MyISAM 不支持; 四、 MyISAM 是默认引擎,InnoDB 需要指定; 五、 InnoDB 不支持 FULLTEXT 类型的索引; 六、 InnoDB 中不保存表的行数,如 select count(*) from table 时,InnoDB; 需要扫描一遍整个表来计算有多少行,但是 MyISAM 只要简单的读出保存好的行数即可。 注意的是,当 count(*)语句包含 where 条件时 MyISAM 也需要扫描整个表; 七、 对于自增长的字段,InnoDB 中必须包含只有该字段的索引,但是在 MyISAM 表中可以和其他字段一起建立联合索引; 八、 清空整个表时,InnoDB 是一行一行的删除,效率非常慢。MyISAM 则会重建表; 九、 InnoDB 支持行锁(某些情况下还是锁整表,如 update table set a=1 where user like %lee% 问题 Q7:创建一个简单tcp服务器需要的流程?可用的回答 : 1.socket创建一个套接字 2.bind绑定ip和port 3.listen使套接字变为可以被动链接 4.accept等待客户端的链接 5.recv/send接收发送数据 问题 Q8:请解释或描述一下Django的架构?可用的回答 : 对于Django框架遵循MVC设计,并且有一个专有名词:MVT M全拼为Model,与MVC中的M功能相同,负责数据处理,内嵌了ORM框架 V全拼为View,与MVC中的C功能相同,接收HttpRequest,业务处理,返回HttpResponse T全拼为Template,与MVC中的V功能相同,负责封装构造要返回的html,内嵌了模板引擎 问题 Q9:迭代器和生成器的区别?可用的回答 : 1)迭代器是一个更抽象的概念,任何对象,如果它的类有next方法和iter方法返回自己本身。对于 string、list、dict、tuple等这类容器对象,使用for循环遍历是很方便的。在后台for语句对容器对象调 用iter()函数,iter()是python的内置函数。iter()会返回一个定义了next()方法的迭代器对象,它在容器中 逐个访问容器内元素,next()也是python的内置函数。在没有后续元素时,next()会抛出一个 StopIteration异常 2)生成器(Generator)是创建迭代器的简单而强大的工具。它们写起来就像是正规的函数,只是在需 要返回数据的时候使用yield语句。每次next()被调用时,生成器会返回它脱离的位置(它记忆语句最后 一次执行的位置和所有的数据值) 区别:生成器能做到迭代器能做的所有事,而且因为自动创建了iter()和next()方法,生成器显得特别简洁, 而且生成器也是高效的,使用生成器表达式取代列表解析可以同时节省内存。除了创建和保存程序状态 的自动方法,当发生器终结时,还会自动抛出StopIteration异常 问题 Q10:Python是如何进行内存管理的?可用的回答 : 从三个方面来说,一对象的引用计数机制,二垃圾回收机制,三内存池机制 一、对象的引用计数机制 Python内部使用引用计数,来保持追踪内存中的对象,所有对象都有引用计数。 引用计数增加的情况: 1,一个对象分配一个新名称 2,将其放入一个容器中(如列表、元组或字典),引用计数减少的情况: 1,使用del语句对对象别名显示的销毁 2,引用超出作用域或被重新赋值 sys.getrefcoun
A、Crawler
B、Jsoup
C、Hertrix
D、Nutch
A、License.txt
B、robots.txt
C、ReadMe.txt
D、hentrix.txt
A、Mirror
B、KW3
C、ARC
D、TXT
A、Logs
B、Jobs
C、Reports
D、Setup
A、Logs
B、Help
C、Profiles
D、Reports