CTO练习营 | 12月3-5日,深圳,是时刻成为优良的技巧治理者了
0×00 媒介
义务:
预备对象:
python安装包、pip、http请求库:requests库、正则库:re库。
阁下名是相对于网站的主域名的。比如百度的主域名为:baidu.com,这是一个顶级域名,而在顶级域名前由"."隔开加上不合的字符,比如zhidao.baidu.com,那么这就是一个二级域名,同理,持续扩大主域名的主机名,如club.user.baidu.com,这就是一个三级域名,依次类推。
0X00 正文
手动收集阁下名是如何的一种过程?
举个例子,比如我们要收集qq.com这个主域名,在百度搜刮引擎可以或许搜刮到的所有阁下名。
起首,应用搜刮域名的语法搜刮~
搜刮域蜜语法:site:qq.com
然后,在搜刮结不雅中存在我们要的阁下名信息,我们可以右键,查看元素,复制出来。
若何用python替代手工的繁琐操作?
1.提议一个搜刮的http请求
请求我们应用python的第三方http库,requests
须要额外安装,可以应用pip进行安装pipinstallrequests
requests根本应用-example:
help(requests)查看requests的赞助手册。
其实就是将手工收集用代率攀来实现主动化棘手工收集的步调:
dir(requests)查看requests这个对象的所有属性和办法。
requests.get('http://www.baidu.com'
提议一个GET请求。
好了,弥补基本常识,我们来提议一个请求,并获得返回包的内容。
- #-*-coding:utf-8-*-
- import requests #导入requests库
- url='http://www.baidu.com/s?wd=site:qq.com' #设定url请求
- response=requests.get(url).content #get请求,content是获得返回包正文
- print response
返回包的内容实袈溱太多,我们须要找到我们想要的阁下名,然后复制出来。
大年夜查看元素我们可以发明,阁下名被一段代码担保着,如下:
- style="text-decoration:none;">chuangshi.qq.com/ </a>
2.正则表达式——(.*?) 闪亮登场:
正则 规矩:style=”text-decoration:none;”>(.*?)/
正则表达式难吗?难。复杂吗?挺复杂的。
然而最简单的┞俘则表达式,我们把想要的数据用(.*?)来表示即可。
re 根本应用-example:
假设我们要大年夜一串字符串'123xxIxx123xxLikexx123xxStudyxx'掏出ILike Study,我们可以这么写:
- eg='123xxIxx123xxLikexx123xxStudyxx'
- printre.findall('xx(.*?)xx',eg)
- #打印结不雅
- ['I','Like','Study']
基于上述例子,依葫芦画瓢也可以获取阁下名了。
- #-*-coding:utf-8-*-
- importrequests#导入requests库
- importre#导入re库
- url='http://www.baidu.com/s?wd=site:qq.com'#设定url请求
- response=requests.get(url).content#get请求,content是获得返回包正文
- #重点,重点,下面这段代码~
- subdomain=re.findall('style="text-decoration:none;">(.*?)/',response)
- printsubdomain
结不雅:
下面是百度搜刮引擎爬取阁下名的完全代码。
- ['www.qq.com','chuangshi.qq.com','1314.qq.com','lol.qq.com','tgp.qq.com','
推荐阅读
华硕发布Maximus X Formula玩家国度主板:发烧水冷专用
CTO练习营 | 12月3-5日,深圳,是时刻成为优良的技巧治理者了 【编辑推荐】盛典一向转,连庆八天给你好看!华硕十一促销在路上!5分钟告诉你 到底该怎么遴选主板华硕也出妖板:双路Xeon竟能>>>详细阅读
地址:http://www.17bianji.com/lsqh/39468.html
1/2 1